在线正则测试

输入 JavaScript 正则表达式与待测文本,匹配结果实时更新,含捕获组与起止位置;引擎与主流浏览器 RegExp 一致。

关于在线正则测试

输入 JavaScript 正则与待测文本,匹配、捕获组与位置随输入实时更新。引擎与主流浏览器 RegExp 一致(非 PCRE 或 .NET)。

常见用途:从 JSON 行抠 orderId、从 access log 看 IP 与状态码、试邮箱/链接规则、从 HTML 片段取 href——不必打开 IDE。

在线正则测试能力

表达式与标志

模式框内只写表达式正文,不要包 /斜杠/;用 g/i/m/s/u/y 按钮切换标志。g 查找全部匹配;m 让 ^ $ 在日志多行文本中按行生效。

匹配列表与分组

  1. 分组 0 为整段匹配;1、2… 对应从左到右的捕获括号。
  2. 命名组 (?<name>…) 在支持 u 标志时按名称展示。
  3. 每行显示在测试串中的起止下标(从 0 开始,起点含、终点不含)。

高亮区

模式合法且两侧均有内容时,匹配片段会在列表上方高亮,便于在长文本里发现误匹配。

标志说明与常见用例

标志按钮下方有 g/i/m/s/u/y 中文说明;再往下是邮箱、链接、UUID、日期、IP、URL 参数等可复制验证用例,不会自动填入输入框。

与 PHP/Java 差异

前瞻、命名组、Unicode 属性等遵循 ECMAScript。从其他语言抄来的模式可能需要改写法——上线前在此试一遍。

常见场景

日志 IP 与状态码

在 nginx 一行上用 (\d+\.\d+\.\d+\.\d+).*?" (\d{3}) — 组 1 为客户端 IP,组 2 为 HTTP 状态码(需与日志格式一致)。

JSON 字段

"orderId"\s*:\s*"([^"]+)" 可从单行接口响应里取出 orderId 做快速核对。

日志里的 UUID

RFC 4122 形态的表达式配合 g 可从堆栈或环境变量里筛 correlation id——再决定是否用于日志解析或脚本。

HTML 链接

href="([^"]+)" 粘贴单段 a 标签时可确认抓到的 URL 是否符合预期。

常见问题

怎么在线测试正则?
在上方输入表达式,下方粘贴样本文本,按需打开标志。合法表达式会显示匹配数、高亮区域及每个捕获组的值。
要不要写两边的 /斜杠/?
不要——只写 JavaScript 里斜杠之间的部分,标志用页面上的 g/i/m/s/u/y 按钮选择。
为什么 Python 里能用这里报错?
本页仅 JavaScript RegExp。转义、命名组写法 (?<name>)、标志位都可能不同,移植后请重新测试。
分组 0 是什么?
0 表示整段匹配;1 是第一个括号捕获,2 是第二个,与 RegExp.exec 一致。
和 regex101 结果不一致?
核对标志 g/m、从代码粘贴时的反斜杠层数,以及引擎是 ECMAScript 而非 PCRE。
能测替换吗?
当前版本侧重匹配与捕获查看;替换请在业务代码或其它文本工具中完成。

表达式示例(可复制到「正则表达式」框)

  • [\w.+-]+@[\w.-]+\.\w+宽松邮箱 — 样本文本含大写时建议 gi
  • https?://[^\s"'<>]+正文或日志里的 http/https 链接(开 g)
  • [0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}日志或配置中的 UUID 形态(开 g)
  • \d{4}-\d{2}-\d{2}yyyy-MM-dd 日期
  • \b(?:\d{1,3}\.){3}\d{1,3}\bIPv4 形态(不严格校验 0–255)
  • [?&]id=([^&]+)查询串第一个 id= 的值(组 1)