正则表达式测试器

文本

在线测试 JavaScript 正则表达式,支持 g/i/m/s/u/y 标志位与命名捕获分组高亮,实时显示匹配结果。支持全局、忽略大小写、多行、点号匹配换行与 Unicode 等标志位组合。高亮显示每个匹配项与命名捕获分组的内容,并列出全部匹配位置。适合调试表单校验规则与日志提取表达式。

//
3 个匹配
常用:
测试文本
高亮匹配
Contact alice@example.com or bob@test.org for details, or admin@site.io
匹配结果
#0alice@example.com@ 8–25
$1alice
$2example.com
#1bob@test.org@ 29–41
$1bob
$2test.org
#2admin@site.io@ 58–71
$1admin
$2site.io

关于 正则表达式测试器

正则表达式测试工具基于浏览器原生 RegExp 引擎,提供实时匹配高亮和分组捕获结果展示。支持 JavaScript 正则的全部标志位:g 全局匹配、i 忽略大小写、m 多行模式、s 点号匹配换行、u Unicode 模式和 y 粘性匹配。输入正则和测试文本后即时显示匹配结果、匹配数量和每个捕获组的内容,方便调试复杂的正则模式。适用于表单验证规则编写(邮箱、手机号、URL)、日志解析模式调试和文本提取规则测试。支持查看正则表达式的可视化解释(每个 token 的含义说明),帮助理解复杂模式的匹配逻辑和优先级。例如用 ^[a-z0-9]+$ 测试字符串,立刻高亮所有匹配并显示捕获组与替换预览,无需来回切换工具。

使用方法

  1. 打开正则测试工具
  2. 在「正则」输入框中输入正则表达式
  3. 在「测试文本」区域输入要匹配的文本
  4. 查看高亮匹配结果和匹配列表
  5. 使用替换模式进行文本替换

使用场景

  • 验证表单输入 — 调试邮箱、手机号、URL、密码强度等校验正则。
  • 日志提取 — 从大段日志里抓取时间戳、错误码、IP 地址等字段。
  • 批量替换 — 配合编辑器的"正则替换"功能,调好正则再批量改代码。
  • 爬虫数据清洗 — 从抓取的 HTML 里提取价格、标题、评分等结构化数据。
  • 学习语法 — 一边改正则一边看高亮结果,比看文档学得快。

常见问题

本工具用的是哪个正则方言?

JavaScript / ECMAScript 方言(PCRE 的子集)。常见差异:不支持反向引用 \g、原子组 (?>)、平衡组等高级特性。Python re 模块的语法绝大部分通用。

为什么我的正则匹配不到?

最常见原因:(1) 漏了 g 标志只匹配第一个;(2) 特殊字符 . * ? + 没转义;(3) 多行文本用了 ^/$ 但没加 m 标志。

正则会不会有性能问题?

会。嵌套量词(如 (a+)+)配上失败匹配会触发"灾难性回溯",导致页面卡死。本工具用浏览器原生引擎,超时会自动中断。

想测试 grep 或 sed 的正则怎么办?

它们用 BRE/ERE 方言,部分元字符需要转义(如 \(\))。本工具不完全兼容,复杂场景建议直接在终端测试。

怎么记住常用正则?

可以参考本站的「正则速查」工具,里面整理了邮箱、URL、IP、信用卡等常用模式。

为什么 ? 号匹配到的不是我想要的字符?

问号在正则里有两种含义:单独跟在字符后面表示「前面的字符出现 0 或 1 次」(如 colou?r 同时匹配 color 和 colour),跟在量词 * + ? 后面则表示「非贪婪」,让匹配尽量短。如果你想要的其实是「可选的整段字符」,直接用 ? 往往作用范围不对。正确做法是先把要变成可选的字符串包进分组,如 (https?://)?,若不想捕获该分组就用非捕获分组 (?:...)?。把它套在括号外再测,就只会影响括号内的整段,而不是紧邻的单个字符。

为什么 . 匹配不到换行符?

默认情况下点号 . 匹配除换行符之外的任意字符,所以遇到多行文本、. 会在一行结束时停下。解决方式有三种:给正则加 s 标志(单行模式),让 . 也能匹配换行;或者改用 [\s\S] 来同时匹配空白和非空白;也可以显式写 [^\n] 但这样仍不含换行。若是要跨多行匹配「块」,推荐 s 标志配合 .*? 非贪婪使用,先在「测试文本」里放入真实的多行日志再确认结果。

广告