正则表达式在线测试
面向 JavaScript 的正则表达式测试工具:在输入时实时高亮显示匹配、捕获组和标志。
你的模式和测试字符串在浏览器中本地评估,不会上传到任何服务器。
由 Udit Agarwal 开发和维护
Regular Expressions (Regex), Explained
想比较两段字符串?试试文本对比工具。
关于 正则测试工具
这款正则表达式测试工具让你实时构建和调试 JavaScript 正则表达式,每个匹配都会在你输入的那一刻在示例文本中高亮显示。作为在线正则测试器,它会显示捕获组、命名组以及每个匹配的起始索引,让你清楚地看到模式捕获到了什么。切换 i、m、s 和 u 标志,可在不同条件下测试正则表达式而无需重写;匹配始终是全局的,所以每个匹配都会列出。它使用与你浏览器自带相同的 RegExp 引擎,因此结果与你的 JavaScript 代码在运行时的实际行为一致。适用于编写校验逻辑的开发者、检查解析规则的 QA 工程师,以及任何正在学习正则的人。所有处理都在你的浏览器本地完成,因此你的模式和测试数据不会离开你的设备。
功能特性
- 在你输入模式时实时高亮测试字符串中的每个匹配
- 为每个匹配显示编号的捕获组和命名组
- 按顺序编号,报告每个匹配的起始索引
- 可单独切换 i、m、s 和 u 标志;匹配始终是全局的
- 使用浏览器原生 JavaScript RegExp 引擎以获得准确结果
- 暴露模式语法错误,让你快速修复无效表达式
- 完全在你的浏览器中处理模式和测试文本
如何使用 正则测试工具
- 在模式字段中输入或粘贴你的正则表达式。
- 在模式旁边切换你需要的标志(i、m、s、u)。
- 将示例文本粘贴到测试字符串框中。
- 在结果面板中查看高亮的匹配、捕获组和位置。
示例
输入
Pattern: (\w+)@(\w+)\.com Flags: g
Text: contact alice@example.com or bob@test.com
输出
Match 1: alice@example.com group1=alice group2=example
Match 2: bob@test.com group1=bob group2=test
从两个邮箱地址中各提取出带捕获组的两个匹配。
常见错误与故障排除
- 关闭 g 标志后仍然列出所有匹配。 — 测试器始终进行全局搜索,方便你看到每个匹配。在你自己的代码中,没有 g 的正则用 exec() 或 match() 时会在第一个匹配处停止,需要全部匹配时请在代码里加上 g。
- 区分大小写的模式漏掉了像 'Error' 与 'error' 这样的词。 — 打开 i(忽略大小写)标志,让模式不分字母大小写地匹配。
- 点号(.)在多行文本中无法匹配换行符。 — 启用 s(dotall)标志,让 . 也能匹配换行。
- ^ 和 $ 只锚定整个字符串,而非每一行。 — 启用 m(多行)标志,以锚定每一行的开头和结尾。
- 命名组或 Unicode 属性转义(\p{...})抛出错误。 — 启用 u(unicode)标志,\p{...} 转义和严格的 Unicode 处理都需要它。
- 模式字段显示语法错误。 — 检查是否有不匹配的方括号或圆括号,并用反斜杠转义像 . 或 ( 这样的字面特殊字符。
常见问题
- 什么是正则表达式测试工具?
- 正则表达式测试工具会将正则表达式应用到示例文本上,并实时显示它匹配到的内容。ArrayKit 的正则测试工具会高亮每个匹配、列出捕获组并报告每个匹配的位置,让你可视化地调试模式。
- 正则测试工具使用哪种正则风格?
- JavaScript——它使用与你浏览器运行相同的 RegExp 引擎,因此匹配结果完全反映你的 JS 代码的行为。
- 如何在正则测试工具中测试捕获组?
- 用圆括号包裹模式的某些部分,然后对文本运行。每个匹配都会列出其编号捕获组和任何命名组,以及匹配开始的索引。
- 正则测试工具中可以切换哪些标志?
- 你可以独立开关 i(忽略大小写)、m(多行)、s(dotall)和 u(unicode),以在不同条件下测试正则表达式。界面上也有 g(全局)按钮,但匹配始终是全局的,所以无论开关与否都会列出所有匹配。
- 正则测试工具能处理多行文本吗?
- 可以。粘贴多行输入并启用 m 标志以让 ^ 和 $ 按行锚定,或启用 s 标志让 . 跨越换行。
- 我的模式和测试数据会被发送到任何地方吗?
- 不会。正则测试工具在你的浏览器中本地评估一切,因此你的模式和示例文本不会离开你的设备,也不会上传到任何服务器。
相关工具
更多代码格式化工具
查看全部代码格式化工具 (32) · 全部工具