正则测试 - 免费在线工具,不用注册 | aigovmap 工具箱

正则测试

输入正则和文本,实时看到每个匹配和每个分组;逐段中文解释;内置手机号、身份证、车牌等常用正则,并写明各自的局限

示例
标志位

可用 $1 $<名称> $&(整个匹配)$`(匹配前的文本)$'(匹配后的文本)$$(一个 $)。没开 g 标志时只替换第一个。

常用正则库(点一下载入,带正反例和局限说明)
JS 正则和 PCRE / Python 的差异
  • 引擎:这里跑的是浏览器的 JavaScript(ECMAScript)正则。PCRE(PHP、grep -P、Nginx)和 Python 的 re 在细节上不同,同一条正则放过去可能报错,也可能悄悄变成别的意思。
  • 命名组:JS 写 (?<name>…)、引用 \k<name>;Python 写 (?P<name>…)、(?P=name);PCRE 两种都认。
  • 文本首尾:JS 没有 \A \Z \z(写了只是字母),用 ^ $。JS 的 $ 只匹配文本最末尾,Python 和 PCRE 的 $ 还会匹配末尾换行符之前。
  • 内联标志与注释:不支持 (?i)、(?x) 自由空格模式、(?#注释)。标志只能写在外面(g i m s u y)。较新的浏览器支持局部写法 (?i:…)。
  • 高级功能:没有原子组 (?>…)、占有量词 a++、递归 (?R)、条件 (?(1)…)、\G \K \R \h、POSIX 类 [[:alpha:]]。
  • 后行断言:JS 的 (?<=…) 可以是不定长的,Python 要求定长。老版本 Safari(16.4 以前)不支持后行断言。
  • \d \w \b 只认 ASCII:JS 里 \d 只匹配 0–9,\w 只匹配 [A-Za-z0-9_],汉字不是单词字符。Python 3 的 \d \w 默认认 Unicode。
  • Unicode 属性:要开 u 标志,并写成 \p{Script=Han};PCRE 可以直接写 \p{Han}。不开 u 时 emoji 等大于 U+FFFF 的字符按两个字符处理,. 只匹配半个。
  • 点号:. 默认不匹配 \n \r \u2028 \u2029,开 s 标志才匹配(对应 Python 的 DOTALL、PCRE 的 s)。
  • 替换语法:JS 用 $1 $<name>;Python 用 \1 \g<name>;写在代码字符串里时还要把反斜杠写两遍。
  • g 与 lastIndex:带 g(或 y)的正则对象调用 test()/exec() 会记住上次位置,重复调用结果可能一真一假。需要判断是否匹配时,不要复用同一个带 g 的对象。
  • 位置的单位:这里显示的位置是 JS 的下标(UTF-16 码元),Python 是码点,字节串则是字节,三者遇到汉字以外的字符(emoji、生僻字)会差一位或两位。
  • 回溯:JS、Python、PCRE 都是回溯引擎,写不好会指数级变慢(灾难性回溯);RE2、Go、Rust 的引擎是线性时间,但不支持反向引用和环视。

逐段解释

    © 2026 tools.aigovmap.com 版权所有⁠​‌​‌‌‌​‌‌‌​‌​​​‌‌​‌‌‌​​‌​‌‌‌‌​​‌‌‌​​​‌​‌​​‌​​​‌​‌‌‌‌​‌‌​‌‌​‌​​‌‌ · 未经许可不得复制或镜像