正则表达式测试工具

测试、调试并可视化正则表达式

正则表达式测试器

//
在上方输入文本以查看高亮匹配

匹配详情

无匹配结果。请输入模式和测试文本以查看结果。

什么是正则表达式测试器?

正则表达式测试器(Regex Tester)是一种帮助开发者、数据分析师和文本处理人员测试和调试正则表达式的工具。 正则表达式是用于搜索、提取和操作文本的强大模式匹配序列。我们的正则表达式测试器工具在您的浏览器中本地处理所有内容,确保您的数据永远不会离开您的设备,从而保证安全和隐私。

使用正则表达式可能具有挑战性,尤其是对于复杂的模式。它们使用密集的语法和特殊字符,初看时可能难以理解。我们的正则表达式测试器通过提供实时的视觉反馈,使匹配的文本高亮显示,并展示捕获组和匹配位置的详细信息,从而简化了这一过程。

Regular Expression Tester

为什么要使用正则表达式测试器?

正则表达式被广泛应用于各种编程语言和文本处理工具中,用于从数据验证到复杂的搜索替换操作。无论您是验证表单输入的开发者、清理数据集的数据分析师,还是执行批量文本操作的内容编辑,正则表达式测试器都能通过让您在生产代码中实现之前可视化和验证模式,节省时间并减少错误。

视觉反馈

实时查看您的正则表达式匹配内容,使用高亮文本使模式匹配清晰直观。

模式调试

通过准确显示匹配和未匹配的文本,快速识别正则表达式中的问题。

捕获组

查看并测试正则表达式中的捕获组,以提取匹配文本的特定部分,便于高级文本处理。

学习工具

通过尝试不同的模式并立即以可视化、交互的方式查看结果,提升您的正则表达式技能。

标志支持

使用不同的标志(全局、忽略大小写、多行等)测试正则表达式,针对特定用例微调匹配行为。

开发效率

通过快速测试正则表达式模式,加快开发流程,在代码或文本处理操作中实现之前验证效果。

如何使用此正则表达式测试器

  1. 在输入框中输入您的正则表达式模式(不包括两侧的 / 分隔符)。
  2. 在标志字段中设置所需的正则表达式标志(g、i、m 等)。
  3. 在测试区域输入或粘贴测试文本。
  4. 实时查看匹配的文本部分高亮显示。
  5. 查看匹配详情部分,了解每个匹配的索引和捕获组信息。
  6. 如果禁用了实时匹配,使用“测试正则表达式”按钮手动运行测试。
  7. 点击“复制”按钮,将您的正则表达式以 /pattern/flags 格式复制。
  8. 尝试预设模式,适用于常见用例如邮箱验证、URL 等。

正则表达式测试与隐私

我们的正则表达式测试器在您的浏览器中本地处理所有数据。您的模式和测试文本永远不会离开您的设备或传输到任何服务器,确保完全的隐私和安全。这使得我们的工具非常适合处理不应与第三方服务共享的敏感或机密数据。

我们的正则表达式测试器优势

100% 客户端处理

所有正则表达式测试均直接在您的浏览器中进行——您的数据永远不会离开设备或发送到任何服务器。

实时匹配

在您输入模式或测试文本时,立即看到正则表达式匹配结果,并通过直观的高亮显示。

暗黑模式支持

可在明暗模式间切换,适应任何环境或时间的舒适观看体验。

捕获组可视化

清晰展示每个捕获组的内容,使复杂的模式提取更易管理。

预设模式

提供常用的邮箱、URL、日期等正则表达式模式,节省时间并学习标准实现。

移动友好设计

完全响应式界面,适用于从桌面到智能手机的所有设备。

理解正则表达式语法

正则表达式使用特殊语法定义文本模式。以下是一些基本组成部分:

  • 字面量:匹配自身的字符(例如,“a”匹配字符“a”)
  • 元字符:具有特殊含义的字符,如 .(任意字符)、^(行首)、$(行尾)
  • 字符类:集合,如 [abc](匹配 a、b 或 c 中的任意一个)或范围如 [a-z](匹配任意小写字母)
  • 量词:指定模式匹配次数,如 *(零次或多次)、+(一次或多次)、?(零次或一次)、{n}(恰好 n 次)
  • 分组:用 () 括起来的模式,创建捕获组以提取或对多个字符应用量词
  • 选择:使用 | 字符指定“或”条件(例如,cat|dog 匹配“cat”或“dog”)
  • 转义:使用 \ 转义特殊字符以匹配其字面含义
  • 标志:如 g(全局)、i(忽略大小写)、m(多行)等,改变模式应用方式的修饰符

常见正则表达式模式:

  • 邮箱: [a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}
  • URL: https?:\/\/(?:www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b(?:[-a-zA-Z0-9()@:%_\+.~#?&\/=]*)
  • 电话号码: \b\d{3}[-.]?\d{3}[-.]?\d{4}\b
  • 日期(YYYY-MM-DD): \d{4}-\d{2}-\d{2}
  • IP 地址: \b(?:\d{1,3}\.){3}\d{1,3}\b

常见的正则表达式挑战

贪婪匹配与非贪婪匹配

默认情况下,量词是贪婪的,会匹配尽可能多的字符。在量词后添加 ? 会使其变为非贪婪(懒惰)匹配,匹配尽可能少的字符。

贪婪:".+""<div>Hello</div><div>World</div>"

匹配:<div>Hello</div><div>World</div>

非贪婪:".+?" 在相同文本中

匹配:<div>Hello</div>

转义特殊字符

像 ., +, *, ?, ^, $, (, ), [, ], {, }, |, \ 这样的特殊字符必须用反斜杠(\)转义,才能匹配它们的字面含义。

匹配 example.com 字面值:example\.com

匹配 5+10=15 字面值:5\+10=15

捕获组与非捕获组

普通分组(括号)会捕获匹配的文本以供后续使用,而非捕获组 (?:) 则对元素进行分组但不捕获。

捕获组:(\w+)@(\w+\.\w+) 应用于 [email protected]

第1组:user,第2组:example.com

非捕获组:(?:\w+)@(\w+\.\w+)

仅捕获 example.com

前瞻与后顾

前瞻和后顾是零宽断言,不消耗字符,但检查当前位置前后是否符合条件。

正向前瞻:\d+(?=px)12px

匹配:12(“px”前的数字)

JavaScript 中后顾示例需要特殊处理

关于正则表达式的常见问题

什么是正则表达式,它们有什么用?

正则表达式(regex)是描述搜索模式的特殊文本字符串。它们在文本处理任务中非常强大,如验证、提取、搜索和替换。正则表达式允许您用相对简洁的语法定义复杂模式,使其在数据清理、表单验证、语法高亮等多种应用中不可或缺。

使用此正则表达式测试器时我的数据安全吗?

是的,您的数据完全安全。我们的正则表达式测试器在您的浏览器中本地处理所有数据——不会发送到我们的服务器或存储在任何地方。这意味着您可以安全地针对敏感或机密文本测试模式,无需担心隐私问题。

各种正则表达式标志有什么区别?

正则表达式标志修改模式匹配的行为。常见标志包括:g(全局,查找所有匹配而非仅第一个)、i(忽略大小写匹配)、m(多行,使 ^ 和 $ 匹配行首/行尾而非整个字符串)、s(点任意匹配,使 . 也匹配换行符)、u(Unicode,正确处理 Unicode 字符)。

正则表达式中的捕获组是如何工作的?

捕获组是用括号 () 括起来的模式部分。它们“捕获”匹配的文本以供后续使用或提取。例如,在模式 (\w+)@(\w+\.\w+) 应用于 "[email protected]" 时,第一个组捕获 "user",第二个组捕获 "example.com"。您可以在替换模式或代码中引用这些组。

为什么我的正则表达式没有按预期匹配?

正则表达式行为异常的常见原因包括:未转义特殊字符、贪婪与非贪婪量词混淆、边界问题(单词边界、行首/行尾)、字符类误解,以及忽视多行或 Unicode 考虑。我们的测试器通过可视化匹配帮助识别这些问题。

正则表达式在所有编程语言中都是一样的吗?

虽然大多数语言的核心语法相似,但高级特性、可用标志和具体行为存在差异。JavaScript、Python、Java、PHP、Ruby 等语言的正则表达式实现略有不同。我们的测试器使用 JavaScript 实现,因为它在浏览器中运行,与大多数现代正则表达式方言兼容性较好。

匹配结果中的“index”是什么意思?

index 表示匹配在测试字符串中的起始位置(从零开始计数)。例如,如果您的正则表达式匹配的单词从测试字符串的第 5 个字符开始,则 index 为 4(因为计数从 0 开始)。

正则表达式能匹配嵌套结构如 HTML 吗?

正则表达式不适合解析嵌套结构如 HTML 或编程语言。虽然它们能处理简单情况,但无法正确验证或解析任意嵌套内容。对于 HTML 解析,使用 DOM 方法等专用解析器更合适。正则表达式更适合平面文本结构的模式匹配。

正则表达式测试器 - 隐私承诺

我们致力于提供一个完全尊重您隐私的正则表达式测试工具。 我们的工具在您的浏览器中本地处理所有数据——绝不会发送到我们的服务器、存储或与任何第三方共享。 您可以完全放心地使用此工具,您的模式和测试数据始终私密且安全地保存在您自己的设备上。