打开搜索引擎敲下“正则表达式测试器下载”这八个字,正则你大概率会看到一堆界面陈旧、表达捆绑安装的式测试器国产小工具。别急着点那个“高速下载”按钮——我试过,下载装完桌面上多出三个游戏图标,正则测试器本身倒是表达找不着了。
真正好用的式测试器正则测试器,往往不需要“下载”这个动作。下载比如 Regex101,正则打开网页就能用,表达左侧写正则,式测试器右侧贴测试文本,下载匹配结果实时高亮。正则它还带语法解释面板,表达你写一个 \d{ 3}-\d{ 4},式测试器它逐段告诉你每个字符在干什么。对新手来说,这比任何离线工具都直观。我见过一个做运维的朋友,排查日志格式问题时直接开 Regex101,把正则调好再复制到脚本里,全程不装任何软件。
当然,有人就是想要本地程序。离线环境、公司内网、或者单纯不喜欢浏览器标签页太多,这类需求真实存在。RegexBuddy 是这块的老牌选手,Windows 平台,付费,大约 40 美元。它的调试功能很细:单步执行、回溯追踪、性能分析,甚至能生成不同语言的正则代码片段。缺点也明显——界面停留在 XP 时代,而且价格对偶尔用一次的人来说不太友好。
免费方案里,Expresso 值得一试。同样是 Windows 桌面端,界面比 RegexBuddy 现代一点,核心功能没缩水。安装包大概 5MB,没有捆绑。不过它最后一次更新是几年前了,对最新版 .NET 的正则语法支持可能有些滞后。我自己的做法是:日常用 Regex101 网页版,需要批量处理文件时切到 Notepad++ 的查找替换功能——它内置正则引擎,勾选“正则表达式”模式就能干活,省得单独装测试器。
Mac 用户的选择少一些。Patterns 算一个,界面漂亮,支持实时匹配和替换预览,App Store 里卖 30 块左右。但它的正则方言偏 ICU,和 PCRE 有些细微差异,写复杂表达式时得留个心眼。另一个思路是用 VS Code 的搜索框——开启正则模式后,它本身就是个轻量测试器,还能跨文件搜索。我写前端时经常这么干,调好正则直接粘到代码里,比切来切去省事。
Linux 用户大概不需要这篇文章。命令行下 grep -P 或者 sed 直接上,再不行还有 perl -e 做快速验证。图形界面的话,regexxer 是个老牌选择,虽然界面朴素,但批量测试和替换很顺手。
说个真实经历。上个月帮同事处理一份 CSV,需要把“2024/1/5”这种日期统一改成“2024-01-05”。我打开 Regex101,正则写 (\d{ 4})/(\d{ 1,2})/(\d{ 1,2}),替换写 $1-$2-$3,但月份和日期要补零。试了 \b(\d)\b 加条件替换,发现 Regex101 的替换语法不支持条件判断。最后用两步走:先 /(\d)/ 替换成 /0$1,再处理开头的情况。整个过程五分钟,没装任何东西。
所以回到“下载”这件事。如果你只是偶尔验证一个正则,浏览器书签里存个 Regex101 就够了。需要离线、需要代码生成、需要性能分析,再考虑装桌面端。下载之前看一眼安装包大小和数字签名——那些 50MB 以上、签名信息空白的“正则测试器”,多半夹了私货。别问我怎么知道的。