正则匹配
在线正则表达式匹配测试工具,支持全局匹配、忽略大小写、多行模式等标志,实时高亮显示匹配结果,查看捕获分组详情。内置常用正则预设和语法速查表,适用于表单验证、数据提取、文本处理等场景。
匹配数量
0
文本长度
0
正则状态
就绪
耗时(ms)
0.00
1
正则表达式
/
/gi
g 全局匹配
i 忽略大小写
m 多行模式
s dotAll(.匹配换行)
u Unicode
y 粘性匹配
常用预设
2
待匹配文本
邮箱示例
URL示例
手机号示例
混合文本
3
匹配结果
输入正则表达式和文本后,匹配结果将显示在此处
正则替换
替换结果将显示在此处...
正则语法速查表
字符类
.匹配任意单个字符(除换行)
\d匹配数字 [0-9]
\D匹配非数字
\w匹配字母数字下划线
\W匹配非字母数字下划线
\s匹配空白字符
\S匹配非空白字符
量词
*匹配0次或多次
+匹配1次或多次
?匹配0次或1次
{n}精确匹配n次
{n,}至少匹配n次
{n,m}匹配n到m次
锚点
^匹配字符串开头
$匹配字符串结尾
\b匹配单词边界
\B匹配非单词边界
分组与引用
(...)捕获分组
(?:...)非捕获分组
(?=...)正向先行断言
(?!...)负向先行断言
$1引用第1个捕获组
\1反向引用第1个捕获组
标志位
g全局匹配(查找所有)
i忽略大小写
m多行模式(^$匹配行首尾)
sdotAll(.匹配换行符)
uUnicode模式
y粘性匹配(从lastIndex开始)
特殊字符
[abc]字符集,匹配a或b或c
[^abc]否定字符集
[a-z]字符范围
|或( alternation)
\转义特殊字符
功能特性
实时匹配
输入正则表达式和文本后即时匹配,无需点击按钮,每次输入变化都会自动重新执行匹配并更新结果。
6种标志位
支持g(全局)、i(忽略大小写)、m(多行)、s(dotAll)、u(Unicode)、y(粘性)六种正则标志位,点击切换。
高亮预览
匹配结果以高亮形式显示在原文中,直观展示匹配位置和内容,深色主题下高亮颜色自动适配。
匹配详情
逐条列出每个匹配项的文本内容、位置索引和捕获分组信息,方便调试复杂的正则表达式。
正则替换
支持基于正则表达式的文本替换,可使用 $1、$2 等引用捕获分组,实现灵活的文本变换。
预设与速查表
内置邮箱、URL、手机号等10种常用正则预设,以及完整的正则语法速查表,无需记忆即可快速使用。
使用说明
如何使用正则匹配工具?
- 在正则表达式输入框中输入正则模式(不需要加
/分隔符),如\d+匹配数字。 - 点击下方的标志位按钮切换匹配选项:
g全局匹配、i忽略大小写等。 - 在文本输入区输入或粘贴待匹配的文本内容。
- 匹配结果会实时显示在下方的预览区中,匹配到的内容会高亮显示。
- 展开匹配详情列表可查看每个匹配项的文本、位置和捕获分组信息。
- 在替换区输入替换字符串(支持
$1、$2等捕获组引用),点击替换按钮查看替换结果。 - 也可从「常用预设」下拉框中选择预设正则表达式快速开始。
正则标志位说明
- g (全局匹配):查找所有匹配项,不加
g则只匹配第一个。 - i (忽略大小写):匹配时不区分大小写,如
/hello/i可匹配 Hello、HELLO。 - m (多行模式):使
^和$匹配每行的开头和结尾,而非整个字符串。 - s (dotAll):使
.能匹配换行符\n,默认情况下.不匹配换行。 - u (Unicode):启用Unicode模式,正确处理Unicode字符,如中文、emoji等。
- y (粘性匹配):从
lastIndex位置开始精确匹配,不跳过字符。
替换中的捕获组引用
在替换字符串中,可以使用 $1、$2 等引用正则表达式中的捕获分组(按左括号顺序编号)。例如,正则 (\w+)@(\w+) 匹配 user@domain,替换为 $2.$1 将得到 domain.user。此外,$& 表示整个匹配文本,$` 表示匹配前的文本,$' 表示匹配后的文本。
常见问题
正则匹配工具是免费的吗?
是的,本工具完全免费,无需注册登录。所有正则匹配和替换均在浏览器本地通过JavaScript的RegExp引擎完成,不涉及服务器交互,使用流畅且隐私安全。
为什么我的正则表达式报错?
正则表达式报错通常是因为语法错误,常见原因包括:括号不匹配(如
(abc 缺少右括号)、字符集未闭合(如 [abc 缺少 ])、量词位置错误(如 *+)、无效的转义序列等。工具会显示具体的错误信息,请根据提示修正正则表达式语法。
JavaScript正则和其他语言的正则有什么区别?
本工具使用JavaScript的RegExp引擎,与Python、Java等语言的正则语法基本兼容,但存在一些差异:JavaScript不支持
(?P<name>...) 命名捕获组(ES2018+支持 (?<name>...) 语法)、不支持 (?<=...) 后行断言(ES2018+支持)、不支持 \A 和 \Z(使用 ^ 和 $ 替代)。大部分常用正则语法是通用的。
如何匹配中文?
匹配中文字符可以使用
[\u4e00-\u9fa5] 匹配Unicode范围,或使用 \p{Script=Han}(需启用 u 标志位)。本工具的预设中已包含中文字符匹配示例。注意:处理中文时建议启用Unicode(u)标志位以获得更准确的结果。
贪婪匹配和非贪婪匹配有什么区别?
默认情况下,量词(如
*、+)是贪婪的,会尽可能匹配更多字符。在量词后加 ? 可改为非贪婪(懒惰)模式,尽可能少地匹配。例如,对字符串 <a><b>,<.*> 贪婪匹配整个字符串,而 <.*?> 非贪婪匹配 <a> 和 <b> 两个标签。
如何在替换中使用捕获组?
在替换字符串中使用
$1、$2 等引用捕获分组,编号按正则中左括号的顺序确定。例如,正则 (\d{4})-(\d{2})-(\d{2}) 匹配日期,替换为 $3/$2/$1 可将 2024-03-15 转换为 15/03/2024。$& 表示整个匹配文本。