你测的是浏览器自带的正则,页面会说明是哪一个
正则表达式不是一种语言。JavaScript、Python、Java、.NET、PCRE、Perl、PHP、Ruby、grep、Go 的 RE2 和 Rust 的 regex crate 各自实现自己的模式语法,差异不是装饰性的:有些构造只存在于其中一种,比如原子组、占有量词、`\K`、`[[:alpha:]]`;有些构造在两种语言里含义不同,比如 `$` 是否匹配结尾换行之前、`\w` 是否包含带重音的字母、先行断言能看到什么。
你的模式直接在你自己的标签页里运行,用的是浏览器自带的 JavaScript 正则功能,所以在这里能工作的模式,在你代码里的 `test`、`match`、`replace`、`split` 和 `search` 中表现一致。页面不做模拟,也不做翻译;报告还会说明当前浏览器支持哪些特性,提 issue 时可以说清是哪个浏览器产生的。
浏览器帮不上忙的是另一个方向。面板会列出另一种风格才有的构造,并说明属于哪一种,这样从 Python 移植过来、或者照 PCRE 文档写出的模式就不再是谜。这部分通常是测试器会漏掉的,也正是会耗掉一个下午的部分。