正则语法速查把 JS、PCRE、Go 三大方言并排对照:命名分组的写法差异、先行后行断言是否支持、反向引用与占有量词的有无、Unicode 属性类与回溯行为,二十多条语法逐项标注,一眼看出跨语言踩坑点。示例表达式可一键插入正则测试器立即试跑(本机传递),支持按语法名搜索,写跨平台正则前先查这张表。
搜索 命名分组
(?<name>…):JS / PCRE 支持;Go 只认 (?P<name>…),可一键插入测试
不会。对照表是内置数据,搜索在本地完成;点「插入测试」通过本机 sessionStorage 把示例带给 正则测试,全程不经过服务器。
Go 标准库 regexp 基于 RE2,为保证线性时间砍掉了断言、反向引用与递归。这不是缺陷而是取舍:换来的性能在日志场景非常值。
不能。JS 用 (?
表达式在特定输入下 CPU 飙满、页面卡死,多见于嵌套量词如 (a+)+。PCRE 可用原子分组或占有量词缓解;Go(RE2)天然线性时间没有此问题。