文本与编码

正则与模式匹配工具

同一条正则在这个语言里能跑通,换一个引擎却报错或匹配结果不一样,这是正则表达式最容易踩坑的地方。正则表达式测试器能查看捕获组和替换预览效果;Python 正则表达式在线测试用真实的 CPython re 模块运行,结果和本地环境一致;需要对比引擎差异时,其他正则引擎测试分别用 PCRE2 与 RE2 跑同一条表达式。

除了正则语法,Glob 模式测试用 minimatch 或 picomatch 验证通配符匹配结果;Gitignore 测试器测试路径是否被 .gitignore 忽略,并指出哪一行规则生效,比肉眼对照规则文件靠谱。URLPattern 测试测试浏览器原生 URL pattern 语法的匹配情况,正则提取可以从文本里按内置模式抓取邮箱、URL、IP 等内容。

7 个工具

正则与模式匹配工具常见问题

为什么同一条正则在 Python 和 JavaScript 里匹配结果不一样?

不同语言的正则引擎在贪婪匹配、命名捕获组语法、Unicode 处理等细节上并不完全一致。想确认 Python 下的真实行为,用 Python 正则表达式在线测试,它跑的是真实 CPython re 模块;要对比 PCRE2 和 RE2 这类引擎差异,则用其他正则引擎测试并排比较结果。

Glob 和正则表达式是一回事吗?

不是。Glob 是构建工具、.gitignore 等场景常用的简化通配符语法,比如 * 和 **,语法比正则简单得多。用 Glob 模式测试可以直接用 minimatch 或 picomatch 这两种常见实现验证匹配结果,而不用先把 Glob 规则翻译成等价的正则表达式再去测试。

怎么知道某个文件到底是被 .gitignore 哪一行忽略的?

用 Gitignore 测试器,输入路径和 .gitignore 内容后,它会指出这个路径是否被忽略,并标出具体生效的规则行,而不是只给一个是或否的结论,遇到规则互相覆盖导致文件没被正确忽略时,这样能更快定位问题所在。