你需要一个正则表达式来验证电子邮件地址、从日志行中提取时间戳或解析有时包含带引号逗号的CSV字段。你写一个模式、针对代码中的一个示例字符串测试它、发现它在边界情况下失败、调整它、重建、再次测试。每次迭代需要30秒的编译-运行-检查,大多数正则表达式模式需要五或六次迭代才能可靠工作。
替代方案是regex101.com — 一个显示实时匹配、解释模式的每一部分、让你针对多个输入测试的出色工具。但它在浏览器中运行,这意味着你将测试数据(日志行、用户记录、API响应)粘贴到公开网站。而且你需要网络连接。
实时反馈对正则表达式为什么很重要
正则表达式本质上很密集。.*和.*?(贪心与惰性)之间的区别可以改变你的模式是匹配一行还是整个文件。前向断言、字符类和捕获组以你很难在你的头脑中推理的方式交互。看到与你键入的模式匹配的高亮将正则表达式从猜测转变为可视、迭代的过程。
这就是为什么基于浏览器的测试工具如此受欢迎 — 它们提供了源代码中编写正则表达式所没有的反馈循环。问题是它们需要浏览器、网络连接和信任你的测试数据保持私密。
在你的Mac上本地测试正则表达式
Bellows包括一个正则表达式测试工具作为其41个开发工具之一。输入你的模式、粘贴你的测试字符串,看到实时匹配高亮。调整模式,结果立即更新 — 没有编译步骤、没有页面重新加载、没有网络请求。
常见模式变得更容易
从日志文件中提取日期(\\d{4}-\\d{2}-\\d{2})。使用可选国家代码验证电话号码。在自由格式文本中匹配URL。解析结构化数据,如字段可能被引用的CSV或TSV。这些模式在概念上很简单,但边界情况很棘手 — 实时测试工具让你在到达生产之前捕获这些边缘。
没有数据离开你的Mac
如果你的测试数据包括服务器日志、用户信息或内部系统输出,在离线测试正则表达式模式不仅很方便 — 这是负责任的选择。Bellows完全在你的机器上运行,没有网络访问。
总是可用
Bellows驻留在你的菜单栏中,所以正则表达式测试工具只需一次点击即可访问。没有浏览器标签页要查找、没有要记住的URL、没有加载轻弹。打开它、测试你的模式、复制结果、关闭它。整个交互只需数秒钟。