正则表达式测试

热门 🔥

实时测试正则表达式

开发者工具

如何使用 正则表达式测试

  1. 1输入您的正则表达式
  2. 2选择标志(g、i、m、s、u)
  3. 3粘贴测试文本
  4. 4匹配项实时高亮显示

关于 正则表达式测试

正则表达式测试器提供实时环境,用于编写、测试和调试正则表达式。输入您的模式和测试字符串,所有匹配项在您输入时即刻高亮显示——无需运行代码或重新加载页面。

捕获组单独显示,让您可以精确检查每个组匹配的内容。测试器使用 JavaScript 原生 RegExp 引擎,与 Node.js 和所有主流浏览器中使用的引擎相同。

在此处有效的模式可直接用于您的 JavaScript 或 TypeScript 代码。

正则表达式测试的主要功能

  • 输入模式时实时匹配高亮显示
  • 显示所有匹配项及其开始/结束位置
  • 单独显示捕获组和命名组
  • 支持标志:g(全局)、i(不区分大小写)、m(多行)、s(dotAll)、u(Unicode)
  • 突出显示匹配计数
  • 完全使用 JavaScript RegExp 在浏览器内运行
  • 理解正则表达式各部分的模式说明侧边栏
  • 与 Node.js 和所有主流 JavaScript 运行时兼容

示例

验证电子邮件地址格式

测试匹配标准电子邮件地址格式的正则表达式模式。

输入

模式: ^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,}$ | 测试: user@example.com 和 invalid-email

输出

user@example.com — 1 个匹配 | invalid-email — 0 个匹配

从文本块中提取所有 URL

使用全局模式在文本字符串中查找所有 HTTP/HTTPS URL。

输入

模式: https?://[^\s]+(带 g 标志)| 测试: 包含多个 URL 的文本

输出

所有 URL 高亮显示,每个作为单独的匹配项显示

常见使用场景

  • 测试和迭代输入验证模式(电子邮件、电话、邮政编码)
  • 构建日志解析模式从日志行中提取结构化数据
  • 为代码编辑器和脚本编写搜索替换模式
  • 通过即时反馈交互式学习正则表达式语法
  • 调试在代码中表现不同于预期的正则表达式模式
  • 从 CSV 行或配置行等结构化文本中提取特定字段

故障排除

模式不匹配任何内容但看起来正确

解决方案

如果期望多个匹配,请检查是否设置了全局(g)标志。没有 g 标志,JavaScript 只找到第一个匹配。

模式中的反斜杠不起作用

解决方案

在 JavaScript 正则表达式字面量中,\d、\w、\s 是有效的。如果从使用双反斜杠的字符串字面量粘贴,请删除多余的反斜杠。

正则表达式导致浏览器挂起或无响应

解决方案

某些模式可能发生灾难性回溯——例如,在不匹配输入上的嵌套量词如 (a+)+。简化模式或使用更短的字符串测试。

常见问题

使用什么正则表达式引擎?

该工具使用 JavaScript 原生 RegExp 引擎,支持前向断言、后向断言、命名捕获组和 Unicode 属性转义。

支持哪些标志?

全局(g)、不区分大小写(i)、多行(m)、dotAll(s)使 . 匹配换行符,以及 Unicode(u)提供完整 Unicode 支持。

如何匹配换行符?

使用 \n 匹配换行符。启用 dotAll(s)标志使 . 也匹配换行符。

什么是捕获组?

捕获组是正则表达式模式中括号内的部分。例如,(\d{4})-(\d{2})-(\d{2}) 在 "2023-11-14" 上捕获 "2023"、"11" 和 "14"。

贪婪和惰性量词有什么区别?

贪婪量词(+、*)尽可能多地匹配。惰性量词(+?、*?)尽可能少地匹配。

可以测试带 Unicode 字符的模式吗?

是的。启用 Unicode(u)标志以使用 Unicode 属性转义如 \p{Letter}。

我的数据会被发送到服务器吗?

不会。所有正则匹配均在您的浏览器本地执行。您的模式和测试字符串永远不会离开您的设备。

可以在其他编程语言中使用此正则表达式吗?

JavaScript RegExp 与 Python、Java 或 PCRE 相似但不完全相同。基本功能在很大程度上是兼容的;特定语言的语法需要调整。