关于在线正则测试
输入 JavaScript 正则与待测文本,匹配、捕获组与位置随输入实时更新。引擎与主流浏览器 RegExp 一致(非 PCRE 或 .NET)。
常见用途:从 JSON 行抠 orderId、从 access log 看 IP 与状态码、试邮箱/链接规则、从 HTML 片段取 href——不必打开 IDE。
在线正则测试能力
表达式与标志
模式框内只写表达式正文,不要包 /斜杠/;用 g/i/m/s/u/y 按钮切换标志。g 查找全部匹配;m 让 ^ $ 在日志多行文本中按行生效。
匹配列表与分组
- 分组 0 为整段匹配;1、2… 对应从左到右的捕获括号。
- 命名组 (?<name>…) 在支持 u 标志时按名称展示。
- 每行显示在测试串中的起止下标(从 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+宽松邮箱 — 样本文本含大写时建议 gihttps?://[^\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)