正则表达式入门:匹配、或、与的写法
为什么要用正则
普通搜索做不到的事:
| 需求 | 普通搜索 | 正则 | |
|---|---|---|---|
| 只搜精确等于"原神"的标签 | 搜"原神"会出来包含"原神截图""原神二创"的所有图 | ^原神$ 只匹配完全等于"原神" | |
| 搜 "原神" 或 "崩坏" 任意一个 | 做不到 | `原神\ | 崩坏` |
| 搜同时有 "原神" 且 "派蒙" 的图 | 搜"原神 派蒙"会出来包含两个词的图,但不是强制都有 | .*原神.* .*派蒙.* | |
| 排除含"广告"的结果 | 做不到 | 配合其他规则 |
正则不是必需的——90% 的时候普通搜索就够了。但剩下 10% 的场景,正则是唯一解法。
Rays 支持的正则语法
Rays 的正则遵循标准正则表达式规则(具体以设备上的实现为准)。常用的只有几种:
匹配任意字符:.*
.* 表示"匹配任意数量的任意字符"——相当于"不管前后有什么"。
| 正则 | 含义 | 匹配示例 |
|---|---|---|
.*原神.* | 包含"原神"的任何内容 | 原神、原神截图、我喜欢原神、genshin原神 |
原神 | 等同于 .*原神.*(包含匹配) | 和上面效果一样 |
整词锚定:^ 和 $
| 正则 | 含义 | 匹配 | 不匹配 |
|---|---|---|---|
^原神$ | 完全等于"原神" | 原神 | 原神截图、我喜欢原神 |
^原神 | 以"原神"开头 | 原神、原神截图 | 我喜欢原神 |
原神$ | 以"原神"结尾 | 原神、我喜欢原神 | 原神截图 |
OR(或):|
用竖线 | 表示"或"的关系。
| 正则 | 含义 | 匹配 | |
|---|---|---|---|
| `原神\ | 崩坏` | 包含"原神"或"崩坏"任意一个 | 原神、崩坏、原神和崩坏、我喜欢崩坏 |
| `^原神$\ | ^崩坏$` | 完全等于"原神"或完全等于"崩坏" | 原神、崩坏 |
AND(与):空格、Tab、换行
在 Rays 里,空格(或 Tab、换行)表示 AND 逻辑——同时包含多个关键词。
| 正则 | 含义 | 匹配 |
|---|---|---|
原神 派蒙 | 同时包含"原神"和"派蒙" | 原神派蒙、派蒙在原神里、原神里的派蒙 |
^原神$ 派蒙 | 标签完全等于"原神"且包含"派蒙" | (结合搜索域使用) |
注意:多个连续空格只算一个空格——输入 原神 派蒙 和 原神 派蒙 效果一样。
AND 在非正则模式下也能用
即使不开正则,Rays 里多个关键词用空格分隔也表示 AND。这是 Rays 对普通搜索的一个增强:
| 模式 | 搜索词 | 效果 |
|---|---|---|
| 普通搜索(正则关) | 原神 派蒙 | 同时包含原神和派蒙的图 |
| 正则搜索(正则开) | .*原神.* .*派蒙.* | 同上(更显式的写法) |
入门练习
假设你的表情库有以下标签:原神、原神截图、崩坏、派蒙、派蒙懵逼、抽象
| 你想搜 | 正则开关 | 搜索词 | 结果 | |
|---|---|---|---|---|
| 包含"原神"的 | 关 | 原神 | 原神、原神截图 | |
| 标签完全是"原神" | 开 | ^原神$ | 原神 | |
| 原神 或 崩坏 | 关 | 原神 崩坏(AND) | 无(因为没有标签同时包含两者) | |
| 原神 或 崩坏(任一) | 开 | 原神\ | 崩坏 | 原神、原神截图、崩坏 |
| 同时包含派蒙和懵逼 | 关 | 派蒙 懵逼 | 派蒙懵逼 | |
| 派蒙 或 派蒙懵逼 | 开 | 派蒙\ | 派蒙懵逼 | 派蒙、派蒙懵逼 |
一句话总结
正则入门只需要记住三个东西:
.*关键词.*—— 包含这个关键词^关键词$—— 完全等于这个关键词关键词1\|关键词2—— 两个任一- 关键词之间用空格 —— 同时包含两个(AND)
剩下的进阶语法(排除、分组、量词)遇到具体场景再查就行。