Overview
先看明白,再动手。
正则表达式测试用于在本地对样本文本实时试表达式:看是否匹配、匹配了哪些片段、分组捕获了什么。它帮你在写替换规则、日志提取或校验逻辑前先验证,而不是直接对生产文件「一把梭」。引擎方言(如 JS 风格)与标志位(i/g/m 等)会影响结果,写进其它语言前请再对一下目标运行时。
Audience
适用人群
写爬虫、日志解析、批量替换或表单校验的开发者与数据清理人员。免费工具;适合边改边看,不替代完整单元测试。
Scenarios
什么时候用它
写批量替换前,先用几行真实样本确认正则不会误伤
从日志行里提取时间戳、ID、URL,核对分组是否正确
调试「为什么线上不匹配」:对照标志位与多行模式
教学或自测:观察贪婪/非贪婪、字符类与边界的行为差异
Highlights
能力亮点
Step by step
使用步骤
准备样本文本
粘贴足够有代表性的正例与反例,而不是只贴理想中的一行。边界情况(空行、中文、换行)尽早覆盖。
编写表达式
输入模式体,按需开启忽略大小写、全局、多行等标志。先写窄规则,确认命中后再逐步放宽。
阅读匹配结果
查看高亮区间、匹配次数与分组内容。出现「全匹配却分组空」时检查括号与量词。
迭代收紧规则
对误匹配加边界、排除字符类或改用非贪婪。对漏匹配补充可选段,但避免 .* 无限制横扫。
迁移到真实任务
把验证过的表达式拷到文本替换、分割或其它工具。注意目标引擎差异(转义、lookbehind 支持等)。
Notes
使用前留意
- 灾难性回溯(恶意或过于复杂的正则)可能导致卡顿,大文本上更明显。
- 不同语言的正则不完全兼容,测试器通过不代表 Java/Python/Go 侧一定通过。
- 不要把未转义的用户输入直接拼进正则,存在注入与性能风险。
- 本工具默认不修改磁盘文件,只做试验;真正批量改写请用替换类工具并备份。
FAQ
常见问题
为什么加了 g 标志结果和预想不同?
全局匹配会找所有命中,且在部分引擎里 lastIndex 会影响后续 exec。先明确你要「测一次」还是「列出全部」。
中文能不能匹配?
可以,但字符类与词边界(\b)对中文往往不如对英文直观。更稳妥是用明确的 Unicode 范围或直接字面量。
如何匹配换行?
默认 . 常不匹配换行;需要时用 [\s\S] 一类写法,或开启相应标志(视引擎而定)。多行模式主要影响 ^ $ 行为。
和文本替换工具里的正则是一回事吗?
思路相同,但替换工具还涉及替换串语法($1、\1 等)与文件编码。先在测试器确认匹配,再带到替换里小样本试写。