正则语法速查 - 在线查 JS PCRE Go 正则方言对照

JS / PCRE / Go 三方言正则语法对照表:命名分组、前瞻后顾、Unicode 类逐一标注支持差异,可一键插入正则测试器

正则语法速查 · 使用说明

正则语法速查把 JS、PCRE、Go 三大方言并排对照:命名分组的写法差异、先行后行断言是否支持、反向引用与占有量词的有无、Unicode 属性类与回溯行为,二十多条语法逐项标注,一眼看出跨语言踩坑点。示例表达式可一键插入正则测试器立即试跑(本机传递),支持按语法名搜索,写跨平台正则前先查这张表。

示例

输入
搜索 命名分组
输出
(?<name>…):JS / PCRE 支持;Go 只认 (?P<name>…),可一键插入测试

如何使用

  1. 搜索语法名或关键词(如 分组、断言)
  2. 对照三列确认目标语言的写法
  3. 点「插入测试」把示例带进正则测试器试跑

小贴士

  • Go(RE2)没有断言与反向引用,迁移表达式先看这两行
  • JS 无 u 标志时 emoji 代理对会被拆开
  • PCRE 的 \K 与 \Q…\E 在 JS 里要手动等价替换

常见问题

正则速查会上传我的表达式吗?

不会。对照表是内置数据,搜索在本地完成;点「插入测试」通过本机 sessionStorage 把示例带给 正则测试,全程不经过服务器。

为什么 Go 的支持列一堆 ✗?

Go 标准库 regexp 基于 RE2,为保证线性时间砍掉了断言、反向引用与递归。这不是缺陷而是取舍:换来的性能在日志场景非常值。

JS 里 (?P<name>…) 能用吗?

不能。JS 用 (?…)(ES2018 起),PCRE 两种都认,Go 只认 (?P…)。跨语言共用一份正则时,分组建议统一写成 Go 兼容的 ?P 形式再按方言调整。

回溯失控是什么症状?

表达式在特定输入下 CPU 飙满、页面卡死,多见于嵌套量词如 (a+)+。PCRE 可用原子分组或占有量词缓解;Go(RE2)天然线性时间没有此问题。

和正则测试器什么关系?

本工具是「查」,正则测试 是「试」:查到语法后一键带示例过去立即验证匹配效果;现成的常用表达式另见 正则替换库。

📂

松开以自动格式化

支持 .json / .sql / .csv / .html / .css / .xml / .yaml 文件