← 返回工具指南
工具指南正则表达式Regex文本处理开发工具工具

正则表达式怎么测试?匹配、分组、替换和批量提取实用指南

正则表达式写完不能只看能不能匹配,还要检查分组、全局匹配、大小写、换行和替换结果。这篇用常见场景讲正则测试方法。

打开配套工具 →

正则表达式很强,也很容易写出“看起来能用,实际会误伤”的规则。比如提取手机号、清理日志、替换 URL、匹配邮箱,测试样本太少就容易漏掉边界情况。

这篇讲正则测试时应该看什么,怎么用 正则表达式测试工具正则批量提取器 检查匹配、分组和替换结果。

先明确你要的是匹配还是提取

很多人一上来就写表达式,但没有想清楚目标。

常见目标有三种:

例如匹配手机号和提取手机号,写法可能不同。判断手机号时通常要加开头结尾:

regex已剪下 ✓
^1[3-9]\d{9}$

从一大段文本里提取手机号时,就不能加整段开头结尾:

regex已剪下 ✓
1[3-9]\d{9}

常见标志位要理解

JavaScript 正则常见标志位:

如果你发现只匹配到第一个结果,通常是少了 g。如果跨行文本匹配失败,可能需要 s,也可能应该改用更明确的字符范围。

分组不是越多越好

括号会创建分组:

regex已剪下 ✓
(\d{4})-(\d{2})-(\d{2})

它可以把 2026-07-07 分成 year、month、day。但如果只是为了控制优先级,不需要捕获,可以用非捕获分组:

regex已剪下 ✓
(?:jpg|png|webp)

分组太多会让替换和维护变复杂。写完后最好在 正则表达式测试工具 里看每个 group 的结果,确认顺序没有错。

替换前先看命中范围

批量替换最危险。比如你想把所有 HTTP 链接替换成 HTTPS,如果规则太宽,可能会改坏日志、代码片段或已经正确的链接。

建议流程:

  1. 先只做匹配,不替换。
  2. 看命中数量和命中文本。
  3. 加几个反例测试。
  4. 再写替换模板。
  5. 最后复制结果。

对重要文本,先用 文本 Diff 工具 对比替换前后差异。

批量提取适合哪些场景

正则批量提取器 适合从大段文本中提取:

提取时建议输出去重后的结果,再人工抽查几条。正则很适合粗筛,但不要默认结果 100% 正确。

写正则时要准备反例

只用正确样本测试,很容易误判。比如你要匹配价格:

正确样本:

text已剪下 ✓
¥199
199.00

反例也要准备:

text已剪下 ✓
abc199
199abc
1.2.3

一个可靠的正则,应该清楚地知道自己“不匹配什么”。

总结

正则表达式测试不只是看绿色命中。你要检查目标、标志位、分组、替换范围、反例和边界情况。

写完正则后,可以先用 正则表达式测试工具 看匹配和分组,再用 正则批量提取器 处理大文本,最后用 Diff 检查替换结果。