Regex
正则测试的稳妥流程:先样本,再边界,最后上线
正则表达式最容易给人一种“已经匹配到了,所以没问题”的错觉。真正可靠的正则,需要同时证明它不会匹配错对象。
写正则前先准备样本。样本至少分两类:应该匹配的正例,以及不应该匹配的反例。只拿一个成功样本调到绿色,很容易漏掉空格、换行、大小写、全角字符和前后缀。
第二步是控制贪婪匹配。像 .* 这样的模式很方便,但在 HTML 片段、日志行和多段文本里可能吃掉远超预期的内容。能使用明确字符集时,就不要用过宽的通配。
第三步是确认运行环境。JavaScript、Python、Go、Nginx、数据库和日志平台的正则特性不完全一致。在线工具测试通过,不代表放到目标环境就完全一致,尤其是命名捕获、回溯、Unicode 类和多行模式。
上线前检查
- 准备正例和反例,并保存到测试用例。
- 明确是否允许空字符串、换行和前后空格。
- 确认大小写敏感、多行模式和全局匹配设置。
- 用目标语言或目标平台再跑一次。