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