正在加载,请稍候…

正则表达式测试器

在线正则表达式测试工具,实时高亮显示匹配结果,支持查看所有捕获组和命名分组,支持 g(全局)、i(忽略大小写)、m(多行)、s/u/v 等 JavaScript 正则标志。

使用方法

  1. 步骤 1:在顶部输入框中输入正则表达式。
  2. 步骤 2:在中间文本框中输入要匹配的测试文本。
  3. 步骤 3:匹配结果实时高亮显示,底部列出捕获组详情。

常见问题

支持哪些正则标志?

支持 g(全局匹配)、i(忽略大小写)、m(多行模式)、s(点号匹配换行)、u(Unicode 模式)、v(Unicode 集合模式)。

如何使用捕获组?

使用圆括号 () 定义编号捕获组,使用 (?<name>...) 定义命名捕获组。匹配结果中会分别列出。

如何确保正则表达式匹配整个字符串而非部分?

使用锚点 ^ 匹配字符串开头,$ 匹配结尾,例如 /^[0-9]{4}$/ 只匹配恰好 4 位数字的字符串。多行模式(m 标志)下,^ 和 $ 会匹配每一行的开头和结尾,而非整个字符串。

如何优化性能很差的正则表达式防止 ReDoS?

灾难性回溯(Catastrophic Backtracking)是正则表达式 DoS 攻击的根源,常见于嵌套量词(如 (a+)+)。优化方法:避免嵌套量词;使用原子组或占有量词阻止回溯;将固定部分移出分组;使用锚定符(^ $)限制匹配范围;测试边界情况(大量重复字符的字符串)。正则测试工具可显示匹配步骤数,超过 100 万步则有 ReDoS 风险。