文本与编码
正则与模式匹配工具
同一条正则在这个语言里能跑通,换一个引擎却报错或匹配结果不一样,这是正则表达式最容易踩坑的地方。正则表达式测试器能查看捕获组和替换预览效果;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 内容后,它会指出这个路径是否被忽略,并标出具体生效的规则行,而不是只给一个是或否的结论,遇到规则互相覆盖导致文件没被正确忽略时,这样能更快定位问题所在。