在线正则表达式测试工具,实时高亮显示匹配结果,支持查看所有捕获组和命名分组,支持 g(全局)、i(忽略大小写)、m(多行)、s/u/v 等 JavaScript 正则标志。
支持 g(全局匹配)、i(忽略大小写)、m(多行模式)、s(点号匹配换行)、u(Unicode 模式)、v(Unicode 集合模式)。
使用圆括号 () 定义编号捕获组,使用 (?<name>...) 定义命名捕获组。匹配结果中会分别列出。
使用锚点 ^ 匹配字符串开头,$ 匹配结尾,例如 /^[0-9]{4}$/ 只匹配恰好 4 位数字的字符串。多行模式(m 标志)下,^ 和 $ 会匹配每一行的开头和结尾,而非整个字符串。
灾难性回溯(Catastrophic Backtracking)是正则表达式 DoS 攻击的根源,常见于嵌套量词(如 (a+)+)。优化方法:避免嵌套量词;使用原子组或占有量词阻止回溯;将固定部分移出分组;使用锚定符(^ $)限制匹配范围;测试边界情况(大量重复字符的字符串)。正则测试工具可显示匹配步骤数,超过 100 万步则有 ReDoS 风险。