正则表达式测试

快捷操作
JavaScript RegExp

可先点下方示例,或点左侧速查表逐步拼出正则。

/
/g
Flags

正则解释

输入有效正则后,将逐段显示含义。

输入正则和测试文本后,将在此高亮显示匹配结果。

上传 TXT、CSV 或 JSON 作为测试文本;可将匹配结果导出为 TXT 或 JSON。

使用说明

输入正则表达式和测试文本,实时高亮匹配并展示捕获组详情。

使用 JavaScript 原生 RegExp(ECMAScript),全部在浏览器内运行,不上传数据。

什么是正则表达式

正则表达式(Regex)是用来描述字符串匹配规则的模式,常用于表单校验、搜索与数据提取。

本工具在浏览器内运行 JavaScript RegExp,可实时查看匹配、位置与捕获组。

正则如何工作

引擎从左到右扫描测试文本并尝试匹配模式。元字符如 .、*、+、?、[]、()、{}、^、$、| 控制匹配方式。

Flags 会改变行为:g 查找全部匹配,i 忽略大小写,m 让 ^/$ 匹配行边界,s 让 . 匹配换行,u 启用 Unicode,y 为粘性匹配。

正则使用场景

常见场景包括邮箱/URL 校验、日志解析、提取数字、清洗 CSV 以及批量替换代码。

可使用本页「常用正则库」一键加载邮箱、手机号、UUID、HTML 标签等模板。

正则最佳实践

优先写简单模式,覆盖边界用例;做整串校验时使用 ^ 与 $ 锚点。不需要提取时用 (?:) 非捕获组。

密码等安全规则应结合服务端校验,不要仅依赖正则。

常见正则错误

未转义特殊字符、贪婪量词匹配过多、以及误以为各语言正则完全一致,都是常见问题。

在 JavaScript 中,replace/match 行为受 flags 影响(尤其 g);无效正则会抛出带位置提示的 SyntaxError。

常见问题

什么是正则表达式?
正则(Regex)是用于匹配和处理文本的模式,由普通字符与元字符组成。
如何在线测试正则?
在本页输入正则与测试文本,即可实时高亮匹配并查看位置、长度与捕获组。
\d 是什么意思?
\d 在 JavaScript 正则中表示任意数字(0–9)。
\w 是什么意思?
\w 匹配单词字符:字母、数字与下划线。
+ 是什么意思?
+ 表示前面的元素出现一次或多次。
* 是什么意思?
* 表示前面的元素出现零次或多次。
什么是捕获组?
圆括号 ( ) 会创建捕获组,匹配片段可在替换中用 $1、$2 引用,或在 match.groups 中读取。
如何用正则验证邮箱?
可使用 ^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$ 等模式,并配合 ^ $ 做整串校验。点击常用库中的邮箱示例即可。
如何匹配 URL?
匹配 http(s):// 加域名与路径字符。可参考常用正则库中的 URL 模板。
什么是正则多行模式?
m 标志让 ^ 和 $ 匹配每一行的行首与行尾,而非整个字符串。
什么是正则全局模式?
g 标志会查找文本中所有匹配,而不是在第一个匹配后停止。
如何用正则提取数字?
使用 \d+ 匹配连续数字;配合 g 可得到文中所有数字匹配。
如何匹配手机号?
可用 \b\d{10,15}\b 等数字模式,再按国家/地区规则调整。
如何在 JavaScript 中测试正则?
使用 new RegExp(pattern, flags) 或 /pattern/flags,与本工具引擎一致。
如何调试正则?
查看语法错误与位置、切换 flags、检查捕获组,并用解释面板理解各符号含义。
正则 flags 是什么?
flags 是模式后的 g、i、m、s、u、y 等字母,用于改变匹配行为。
正则能验证密码吗?
可用于长度、字符种类等规则,但真实场景必须结合服务端安全校验。
什么是正向先行断言?
(?=…) 表示前方必须满足某模式,但不消耗字符。
什么是反向先行/后行断言?
现代 JavaScript 支持 (?<=…) 与 (?<!…) 等后行断言(视引擎版本而定)。
正则测试工具有什么用?
在写入应用、脚本或数据流程前,快速验证与调试正则表达式。

相关工具