正则进阶:排除、边界、组合条件的写法
否定:排除某些结果
Rays 可能不直接支持标准的否定前瞻语法((?!...)),但可以通过组合搜索域和正则来实现类似效果。
思路:先收窄,再精确
想搜包含"原神"但不包含"崩坏"的图:
- 把搜索域限定为仅标签
- 开正则,搜
.*原神.* - 在结果里手动排除含"崩坏"标签的
或者,如果设备上的正则实现支持否定字符类:
| 正则 | 含义 |
|---|---|
原神[^崩]*$ | 以"原神"开头、后面不含"崩"的内容 |
⚠️ 否定语法因正则引擎实现不同可能有差异,以你设备上 Rays 的实际支持情况为准。如果不行,回到"先收窄再筛选"的思路。
分组:用括号组织复杂条件
当 AND 和 OR 组合出现时,用括号明确优先级。
没有括号时
原神 派蒙|崩坏
正则引擎的理解可能是 (原神 AND 派蒙)OR 崩坏——即"同时包含原神和派蒙,或者只包含崩坏"。
有括号时
原神 (派蒙|纳西妲)
明确表示 原神 AND (派蒙 OR 纳西妲)——即"包含原神,且同时包含派蒙或纳西妲"。
分组练习
假设你想搜:(包含原神 AND 派蒙)OR(包含崩坏)OR(包含崩铁 AND 星穹)
写成正则:
(原神 派蒙)|崩坏|(崩铁 星穹)
注意每个括号组内部的空格还是表示 AND。
混合 AND/OR 的典型场景
场景一:多标签组合
你想找的表情:有原神标签,且有派蒙或纳西妲标签
正则(搜索域设为标签):原神 (派蒙|纳西妲)
效果:标签里同时包含"原神"和"派蒙",或者同时包含"原神"和"纳西妲"。
场景二:排除某些类别
你想找所有原神相关但不是截图的表情。假设你的标签体系里,"原神截图"是一个单独标签:
- 搜索域设为标签
- 搜
^原神$|^派蒙$|^纳西妲$—— 排除了"原神截图"这个标签(因为它不等于"原神") - 结果里都是纯角色标签的图,不包含"截图"相关
场景三:精确到特定情绪
你想找同时有"原神"标签且带"无语"情绪的图,但你的标签体系里"无语"和"派蒙无语"是两个独立标签:
正则:原神 (无语|派蒙无语)
量词:可选和次数匹配
| 正则 | 含义 | 示例 |
|---|---|---|
原神.?截图 | 原神和截图之间有 0 或 1 个任意字符 | 原神截图、原神x截图 |
原神.{0,3}截图 | 原神和截图之间有 0-3 个任意字符 | 原神截图、原神的截图、原神de截图 |
量词在表情搜索里用得比较少——表情标签通常是完整的中文词组,不太需要模糊中间字符。
常见正则陷阱
陷阱一:忘记开正则开关
你写了 ^原神$ 但忘了开正则开关——Rays 会把它当作普通关键词搜,结果出来的是包含这整个字符串(包括 ^ 和 $)的图。
养成习惯:写了正则就检查一下开关是否打开。
陷阱二:中文标点混入
不要在正则里混用中文标点——原神|崩坏(中文全角竖线)和 原神|崩坏(英文半角竖线)效果完全不同,后者才是正则的 OR。
养成习惯:写正则前把输入法切到英文模式。
陷阱三:AND 和 OR 的优先级搞反
原神 派蒙|崩坏 和 原神 (派蒙|崩坏) 是两个不同的搜索。前者是 (原神 AND 派蒙) OR 崩坏,后者是 原神 AND (派蒙 OR 崩坏)。结果差异很大。
进阶用法一句话
正则进阶的核心是括号分组——遇到多条件组合,用括号明确哪些是 AND、哪些是 OR。否定和量词在表情搜索里不是高频场景,需要时再查文档。