即使是同样的正则表达式,各语言的语法和支持也略有不同。
正则表达式的核心概念是共通的,但细节语法(风味)因语言而异。本工具使用浏览器的 JavaScript(ECMAScript) 引擎,所以把模式迁移到其他环境时,需要了解这些差异。
命名组在 JavaScript、Python 和 PCRE 中都支持,但语法不同。JavaScript·PCRE 用 (?<name>...),Python 用 (?P<name>...),引用方式也各不相同。后行断言在最新的 JavaScript、Python 和 PCRE 中都支持,但一些较旧的环境没有。
标志的写法也不同。JavaScript 像 /pattern/gi 这样加在斜杠后面,Python 则把 re.IGNORECASE 之类的常量作为参数传入。JavaScript 的 s(dotAll)·u(unicode)标志在其他语言中可能是默认行为,或者名称不同。
Unicode 属性 \p{...} 在 JavaScript 中需要有 u 标志才能生效,PCRE·Python(regex 模块)的处理方式略有不同。把模式迁移到其他语言时,请先在该语言的正则表达式文档中确认这些项目。