工具盒子 / 正则表达式测试

正则表达式测试

实时匹配、分组捕获、常用正则库

— 广告 · Advertisement —
/ gi
常用正则
输入正则表达式后显示分组信息

使用指南

在左侧面板的"正则表达式"输入框中输入你的正则模式,工具会自动在右侧实时显示匹配结果。你可以通过下方的标志位复选框来控制匹配行为,包括全局匹配(g)、忽略大小写(i)、多行模式(m)、dotAll模式(s)和Unicode模式(u),勾选后即时生效。

在"测试字符串"文本框中输入需要匹配的文本内容,匹配到的部分会以高亮方式显示在右侧的"匹配结果"区域。同时,捕获分组信息会以表格形式展示,包括每个分组的索引、名称和匹配内容,方便调试复杂的正则表达式。

工具还内置了常用正则库,涵盖邮箱、手机号、URL、IPv4、日期等常见模式,点击即可自动填入。如果需要进行文本替换,在"替换字符串"输入框中填写替换内容(支持 $1$2 等分组引用),替换结果会实时显示在下方。

常见问题

正则表达式中的贪婪和非贪婪有什么区别?

贪婪匹配(Greedy)会尽可能多地匹配字符,而非贪婪匹配(Lazy)会尽可能少地匹配字符。例如,对于字符串 "a1b2c",正则 a.*c(贪婪)会匹配整个 "a1b2c",而 a.*?c(非贪婪)只会匹配 "a1b2c" 中最短的可能。在量词后加 ? 即可切换为非贪婪模式,适用于 *+?{n,m} 等量词。

如何匹配中文字符?

匹配中文字符常用的正则模式是 [\u4e00-\u9fa5],这个范围涵盖了绝大多数常用汉字。如果需要匹配中文标点符号,可以使用 [\u3000-\u303f\uff00-\uffef]。在JavaScript中,如果启用了Unicode标志(u),也可以使用Unicode属性转义 \p{Script=Han} 来匹配汉字,这种方式更加语义化且覆盖更全。

什么是零宽断言?

零宽断言(Lookaround)是一种不消耗字符的匹配方式,它只判断某个位置前后是否满足条件,但不会将断言部分纳入匹配结果。正向先行断言 (?=...) 表示匹配后面跟着指定内容的位置,负向先行断言 (?!...) 表示匹配后面不跟着指定内容的位置。正向后行断言 (?<=...) 和负向后行断言 (?<!...) 则分别判断前面是否满足条件。零宽断言常用于条件匹配和提取特定上下文中的内容。

相关工具

— 广告 · Advertisement —
— 广告 · Advertisement —