正则测试器

正则测试器,是指在线输入一条正则表达式和一段测试文本,实时把所有匹配片段高亮标出、并展开每个编号捕获组和命名分组,帮你快速调试、验证正则写得对不对。本工具免费、不加水印,基于浏览器原生的 JavaScript(ECMAScript) 引擎运行,正则与测试文本不上传服务器,适合调试含账号、日志等敏感数据的内容。支持 g/i/m/s/u/y 标志与替换预览,并内置手机号、邮箱、身份证等常用正则库;它用的是 JS 语法,与 PCRE/Python 略有差异。

//g
常用正则库(点击一键套用手机号 / 邮箱 / 身份证等)

输入正则表达式后自动匹配。

🔒 正则与测试文本都在你的浏览器本地用原生 JS 引擎求值,未上传任何服务器。它测试的是 JavaScript(ECMAScript) 语法,与 PCRE / Python 略有差异;病态正则会被超时中止以保护浏览器。

如何使用正则测试器

1

在上方输入正则表达式并勾选需要的标志(g 全局、i 忽略大小写、m 多行、s 单行、u Unicode、y 粘连);内容不上传,浏览器本地求值。

2

在下方粘贴或上传要测试的文本,页面即时高亮所有匹配,并列出每条匹配的起止位置、编号捕获组与命名分组。

3

需要时点「替换预览」填替换字符串查看替换后全文,或从常用正则库一键套用手机号、邮箱、身份证等现成规则。

常见问题

正则测试器会上传我的正则和文本吗?安全吗?
不会上传。正则测试器全程在你的浏览器本地用原生 JavaScript 引擎求值,正则和测试文本都不会发送到任何服务器,关闭页面即清除,因此测试含账号、日志、身份证号等敏感数据的文本也放心。
手机上能用正则测试器吗?需要装软件吗?
可以,且无需下载任何 App 或软件。正则测试器是纯网页实现,手机、平板、电脑浏览器打开即用,无需注册登录,随时随地在线调试正则表达式。
正则测试器支持哪些标志(g/i/m/s/u/y)?
支持 g(全局匹配全部结果)、i(忽略大小写)、m(多行,让 ^ $ 匹配每行首尾)、s(单行 dotAll,让 . 匹配换行)、u(Unicode,正确处理 emoji 与码点)、y(粘连 sticky)。勾选即时生效;为精确定位捕获组位置,内部会自动附加 d(hasIndices),不影响匹配结果。
正则测试器能测捕获组和命名分组吗?
能。每条匹配都会展开全部编号捕获组($1…$n,未命中显示 undefined)和命名捕获组 (?<name>…),并给出匹配的起止索引,方便你验证分组是否按预期捕获。
正则测试器是哪种语法(flavor)?和 PCRE、Python 正则一样吗?
本正则测试器用的是 JavaScript(ECMAScript) 语法,和 PCRE、Python re、Java、Go(RE2) 并不完全等价。它支持命名组 (?<name>)、lookbehind (?<=)、u/d 标志;但不支持内联修饰符 (?i)、原子组 (?>)、占有量词 a++、递归等 PCRE 特性,请以你实际运行环境(前端 JS / Node)为准。
正则测试器为什么会卡住或提示被中止(ReDoS)?
某些写法(如嵌套量词 (a+)+ 配长文本)会触发灾难性回溯,正则引擎在特定输入上会指数级耗时。为保护浏览器,正则测试器把求值放在独立线程并设了硬超时,超时即中止并提示——这不是工具缺陷,请改写正则避免嵌套量词或缩小测试文本。
常用正则表达式(手机号/邮箱/身份证)在哪里直接套用?
在本页的「常用正则库」区域直接点选即可。正则测试器内置常用正则库,涵盖手机号、邮箱、身份证 18 位、URL、IPv4、日期时间、中文字符、车牌号、十六进制颜色等,点一下即可把正则、标志和示例文本一键填入并立即看到高亮效果。

正则表达式语法速查表

常用字符类、量词、锚点与分组(JavaScript 语法)
写法含义示例
.除换行外任意字符(加 s 标志可含换行)a.c 匹配 abc、a1c
\d \w \s数字 / 单词字符(字母数字下划线) / 空白\d+ 匹配一串数字
\D \W \S上面三者的取反\S 匹配非空白字符
[abc] [^abc]字符集合 / 排除集合[a-z] 匹配任意小写字母
* + ?重复 0+ / 1+ / 0 或 1 次ab* 匹配 a、ab、abbb
{n} {n,} {n,m}精确 n 次 / 至少 n 次 / n 到 m 次\d{4} 匹配 4 位数字
*? +? {n,m}?惰性(非贪婪)量词,尽量少匹配<.+?> 匹配最短标签
^ $行首 / 行尾(加 m 标志按每行)^\d 匹配以数字开头
\b \B单词边界 / 非单词边界\bcat\b 只匹配独立 cat
( ) (?: )捕获组 / 非捕获组(ab)+ 捕获,(?:ab)+ 不捕获
(?<name>…)命名捕获组(?<y>\d{4}) 捕获为 y
(?= ) (?! )先行断言 / 否定先行a(?=b) a 后须跟 b
(?<= ) (?<! )后行断言 / 否定后行(?<=¥)\d+ 金额数字
a|b或(择一匹配)cat|dog 匹配 cat 或 dog
\ 转义匹配元字符本身\. 匹配真正的句点