开始之前
边看边操作在 正则测试 中打开实际工作区→
正则在一条样例上匹配成功,并不代表它能处理空值、中文、重复字段或不同引擎。更可靠的方法是准备一组小而完整的测试文本。
准备有代表性的文本
同时包含应该匹配、不应该匹配、空值和 Unicode 内容。
示例
PN-1042 completed
PN-1043 failed
not-an-order逐步增加边界和分组
一次只增加一个约束,命名分组比纯编号更容易维护。
示例
(?<id>PN-\d+)\s+(?<status>completed|failed)检查每一处匹配
查看完整匹配、捕获组与位置,并确认 g、m、i 等 Flags 是否符合实际环境。
示例
flags: gmi预览替换
在修改文件或数据库内容之前,先对测试集运行替换预览。
示例
$<id> => $<status>要点总结
- 失败样例和成功样例同样重要。
- 正则引擎与 Flags 都是表达式的一部分。
- 破坏性替换必须先预览。