正则表达式测试
我要提建议在线测试正则:实时高亮匹配、列出位置与捕获分组、支持替换预览与六种标志位,在本机用本地算法完成。
相关工具
这个工具是做什么的
写正则最费时间的是「试」:表达式对不对、分组取到没有、替换后长什么样。本工具把这些一次给全——输入表达式与文本后高亮显示所有匹配位置,逐个列出匹配内容、字符位置与捕获分组(包括命名分组),切到替换模式还能预览替换结果与替换次数。支持 g、i、m、s、u、y 六种标志位,行为与 JavaScript 正则完全一致(例如没有 g 时只匹配或替换第一处)。所有测试都在本机用本地算法执行,数据不出设备。
使用方法
- 输入正则表达式,按需勾选标志位(找全部匹配要勾 g)。
- 粘贴测试文本,点「测试匹配」查看高亮、位置与分组。
- 需要替换时切到「替换」模式,填写替换模板(支持 $1、$<name>)再执行。
常见问题
- 为什么只匹配到一处?
- 没有勾选 g(global)时,JavaScript 正则只匹配第一处,替换也只替换第一处——本工具刻意保持一致,避免「工具多替换了」的误解。需要全部匹配请勾上 g。
- 捕获分组怎么读?
- 列表里 $1、$2 依次对应括号分组,未参与匹配的分组显示为 ∅(空);命名分组会额外列出名字与取值。零长度匹配会显示「(空匹配)」,它常出现在 a* 这类可为空的表达式中。
- 替换模板支持哪些写法?
- 与 JavaScript 一致:$& 表示整个匹配、$1…$9 表示分组、$<name> 表示命名分组、$$ 表示一个字面量美元符号。留空则删除匹配内容。
- 会不会被复杂正则卡住?
- 有可能。嵌套量词(如 (a+)+)在某些输入上会触发灾难性回溯,这属于正则本身的特性而非工具问题。建议先在短文本上验证表达式,工具也会在匹配数超过 1000 时截断并提示。
- 会上传文本吗?
- 不会。匹配与替换都在本机用本地引擎完成,没有网络请求。