正则验证器
g: 全局匹配,查找所有匹配项
i: 忽略大小写,a 与 A 被视为相同
m: 多行模式,使 ^ 和 $ 匹配行首/行尾
s: 让 . 匹配换行字符
u: 启用 Unicode 模式,支持 Unicode 代码点
y: 粘性匹配,从当前索引开始匹配(sticky)
v: 升级版 Unicode 模式,支持属性转义与集合操作
FAQ
这个正则验证器工具是做什么的?
它用于在浏览器本地实时测试正则表达式。可以即时查看匹配结果、捕获组、命名捕获组,并高亮显示匹配位置,帮助你快速理解和调试正则表达式。
支持哪些正则标志(flags)?
支持常见 JavaScript 正则标志:
- g:查找所有匹配项
- i:忽略大小写
- m:多行模式,使 ^ 和 $ 作用于每一行
- s:让 . 可以匹配换行符
- u:Unicode 模式,支持更完整的字符处理
- y:从当前位置开始匹配
- v:增强 Unicode 模式(部分浏览器可能支持不完全)
如果标志组合不正确,浏览器会提示错误。
为什么有时候匹配结果看起来不完整?
常见原因包括:
- 没有开启全局匹配(g),只返回第一个结果
- 正则本身限制了匹配范围(例如 ^ 或 $)
- 使用了不会消耗字符的匹配规则(例如单词边界)
- 某些复杂规则会影响匹配的连续性
什么是零宽匹配?为什么结果看起来是空的?
零宽匹配是指不占用字符位置的匹配,例如单词边界 \b、行首 ^、行尾 $。这些匹配本身没有“文字内容”,但工具会用特殊方式高亮显示,帮助你看到它们的位置。
命名捕获组(?<name>)有什么用?
命名捕获组可以给正则中的分组起名字,例如 (?<key>...)。相比普通分组,它可以让结果更清晰,避免只能通过数字索引访问的问题。
为什么有些正则会报错?
如果正则表达式语法不正确(例如括号不匹配、标志组合错误、转义字符错误),浏览器会直接报错。工具会捕获这些错误并显示具体原因,帮助你快速定位问题。
输入内容会上传到服务器吗?
不会。所有正则匹配和分析都在浏览器本地完成,不会上传任何输入内容。
为什么匹配结果有时候会重复或跳过?
某些正则规则在连续匹配时会影响匹配位置,工具已经做了自动保护,避免出现卡住或无限循环的问题,因此结果可能会与直觉略有不同,但保证不会死循环。
v 标志有什么作用?
v 是较新的增强模式,用于支持更复杂的 Unicode 匹配能力,例如字符集合运算等。不同浏览器支持程度可能不同。