正则表达式测试

测试 JavaScript 正则表达式,实时高亮匹配、查看分组并预览替换结果。

/ /

  
常用模式

功能特性

实时高亮匹配
支持修饰符 g、i、m、s
捕获组信息
常用正则速查
替换功能

使用方法

1. 在顶部框输入正则表达式。

2. 选择标志位(g、i、m、s)。

3. 在下方输入测试文本 —— 匹配会实时高亮。

4. 切换到「替换」标签可预览替换结果。

关于这个工具

正则表达式功能强大,也出了名地容易写出细微的错误。这个测试工具使用 JavaScript 自身的正则引擎——也就是浏览器和 Node.js 使用的同一个引擎——运行你的表达式,并在你输入时高亮测试文本中的每一个匹配。匹配详情会列出每个匹配的位置和每个捕获组的值,替换面板可以用 $1、$2 等分组引用预览替换结果。标志一键切换:g 查找所有匹配,i 忽略大小写,m 让 ^ 和 $ 按行生效,s 让点号匹配换行符。常用模式库提供了邮箱、网址、电话、日期、十六进制颜色和 IPv4 地址的写法,可以在此基础上修改。

常见问题

这个测试工具使用哪种正则语法?
JavaScript(ECMAScript)。大部分语法与 PCRE、Python 和 Java 相同,但有些功能不同,例如占有量词以及部分后行断言和命名分组的写法。如果表达式要在其他语言中运行,请在目标语言里再测试一次。
g、i、m、s 标志分别有什么作用?
g 返回所有匹配而不是只返回第一个;i 忽略大小写;m 让 ^ 和 $ 匹配每一行的开头和结尾;s 让 . 可以匹配换行符。
捕获组和替换中的 $1 怎么用?
圆括号会捕获它匹配到的文本。替换时 $1 插入第一个分组,$2 插入第二个,$& 插入整个匹配。例如用 (\w+)@(\w+) 匹配,替换为 $2 at $1,user@example 就会变成 example at user。
为什么我的表达式匹配得太多?
.* 和 .+ 这样的量词是贪婪的,会尽可能多地匹配。在后面加 ? 变成懒惰模式(.*?),或者改用更具体的字符类,比如 [^"]*,让它在正确的位置停下。
用正则验证邮箱地址靠谱吗?
正则可以发现明显的输入错误,但完整合法的邮箱语法复杂到无法写成实用的表达式。请做简单检查,再通过发送验证邮件确认地址有效。

相关工具