ToolCozy
AI 订阅价比价HOTAI 模型能力排行NEW
JSON 格式化 / DiffHOTBase64 编解码HOTURL 编解码NEW时间戳转换NEWUUID 生成Hash 计算JWT 解析QR Code 生成单位换算进制转换数据格式转换SQL 格式化IP 查询
图片压缩HOT颜色转换图片格式转换图片裁剪NEWApp Store 截图生成NEW
正则测试NEW字数统计Diff 对比Markdown 预览

更多产品

Kaola 截图

App Store 预览截图生成器,支持设备外框和模板

好好吃药

简单好用的吃药提醒助手,再也不会忘记服药

那一天

重回历史上的某一天——那天的新闻、歌曲、电影

© 2026 ToolCozy·隐私协议·意见反馈

正则测试

正则表达式编辑、匹配高亮与捕获组展示

//g
Flags:
关于此工具

正则测试工具让你交互式地编辑、调试和验证正则表达式——粘贴文本、输入 pattern,匹配结果实时高亮,不用反复翻文档。

本工具使用 JavaScript 正则方言(和浏览器、Node.js 一致),支持所有标准 flag(g、i、m、s、u、y),高亮每个匹配,并把每个捕获组拆出来,方便你验证复杂 pattern 的结构。

使用步骤

编写并测试 pattern

  1. 在 pattern 框里输入正则(不需要前后斜杠,flag 在旁边按钮里切换)。
  2. 切换 flag:g 全部匹配,i 大小写不敏感,m 多行 ^/$,s 让 . 匹配换行,u 完整 Unicode,y 粘性匹配。
  3. 粘贴测试文本,匹配结果在原文中高亮,捕获组在下方列表展示。
  4. 可以从内置模板(邮箱、URL、手机号等)出发,不必从零写起。

示例

从邮箱中捕获域名

输入
Pattern: ([a-z0-9._%+-]+)@([a-z0-9.-]+\.[a-z]{2,})
Flags:   gi
Text:    Contact [email protected] or [email protected]
输出
Match 1: [email protected]
  Group 1: alice
  Group 2: toolcozy.com
Match 2: [email protected]
  Group 1: bob
  Group 2: example.org

找出所有数字

输入
Pattern: \d+
Flags:   g
Text:    Order 12 of 350 shipped on day 7
输出
Matches: 12, 350, 7
常见问题
用的是哪种正则方言?

JavaScript / ECMAScript。意味着现代浏览器里 lookbehind((?<=…))可用,命名捕获组((?<name>…))可用,但 PCRE 特有的递归、占有量词等不支持。

各个 flag 是什么意思?

g 找出所有匹配;i 大小写不敏感;m 让 ^ 和 $ 按行匹配;s 让 . 也能匹配换行;u 启用完整 Unicode(含代理对和 \p{} 属性类);y 粘性匹配(只在 lastIndex 处尝试)。

我觉得应该匹配上但匹配不到,为什么?

常见原因:忘了加 g(只显示第一处);从 HTML 复制时反斜杠被转义了(pattern 框里用单反斜杠就行);贪婪和惰性量词混淆;或者测试文本里其实没有那东西(多余空格、智能引号等)。

复杂正则会卡死浏览器吗?

会。像 (a+)+ 这种嵌套量词配上长输入会触发灾难性回溯——引擎要尝试指数级的组合。本工具里测试文本一般不长不会出事,但千万别在生产环境对用户输入跑这种 pattern。

支持命名捕获组吗?

支持。(?<year>\d{4}) 就是一个命名组,同时也有数字索引,老代码里 match[1] 仍然能用。