如何在线测试正则表达式
正则表达式是编程中最强大的工具之一 · 也是最令人沮丧的之一。正则测试器允许您交互式构建和调试模式,而不是运行代码、检查输出、再猜测哪里出错。
为什么使用正则测试器
在您的编辑器中编写正则意味着只有在运行时才能看到错误。测试器向您显示:
- 实时高亮· 输入模式时精确看到文本的哪些部分匹配
- 捕获组· 无需编写调试代码就能看到每个组捕获的内容
- 匹配详情· 每个匹配的确切位置、长度和内容
- 替换预览· 在应用之前查看查找替换的结果
如何在线测试正则
- 输入您的模式· 在模式字段输入正则。根据需要启用标志(g 表示全局、i 表示忽略大小写、m 表示多行)。
- 粘贴您的测试文本· 输入要测试的文本。匹配实时高亮。
- 查看结果· 查看所有匹配,下面列出捕获组。使用「替换为」字段测试替换。
需要了解的常见正则模式
邮箱地址(基础):
[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}
URL:
https?://[^\s]+
电话号码(美国):
\(?\d{3}\)?[-.\s]?\d{3}[-.\s]?\d{4}
日期(YYYY-MM-DD):
\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\d|3[01])
IP 地址(IPv4):
\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b
编写更好正则的小贴士
- 从简单开始· 先让基础模式工作,再添加复杂度。尝试一次写出完美的正则很少成功。
- 使用全局标志(g)· 没有它,测试器会在第一个匹配处停止。使用
g可以看到文本中的所有匹配。 - 测试边缘情况· 您的正则可能匹配明显情况,但在空字符串、特殊字符或边界条件上失败。把它们加到测试文本中。
- 转义特殊字符·
.、*、+、?、(、)、[、]、{、}、\、^、$和|在正则中有特殊含义。要按字面匹配它们,请在前面加反斜杠。 - 使用非捕获组· 如果需要括号分组但不需要捕获,使用
(?:...)而不是(...)。这能让结果更干净。
常见问题
我的正则能在其他编程语言中工作吗?
大部分正则语法在 JavaScript、Python、Java、PHP 和其他语言之间是共享的。基础模式(字符类、量词、锚点)到处有效。但高级功能如后顾断言或命名组因语言而异。
我的测试数据会发送到服务器吗?
不会。所有匹配在您的浏览器中使用 JavaScript 的原生 RegExp 引擎本地完成。没有任何内容发送到其他地方。
可以测试替换吗?
可以。输入替换模式(使用 $1、$2 等表示捕获组)以实时查看查找替换的结果。
可以离线使用吗?
可以。页面加载后,工具完全在您的浏览器中工作,无需联网。