开发者

正则表达式测试器

编写正则表达式模式,粘贴测试文本,输入时实时查看每个匹配项高亮显示。不要再猜测你的模式是否有效——直接看它运行。

这个计算器对您有帮助吗?

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

正则表达式测试器是一种必不可少的开发工具,允许您实时测试正则表达式与示例文本的匹配情况,提供即时视觉反馈,显示您的模式是否正确匹配。正则表达式通常称为regex,是强大的基于序列的模式,用于几乎所有编程语言和文本编辑器中的文本搜索、验证、提取和操作。此工具让您编写regex模式并粘贴测试文本,立即看到所有匹配项及其位置、捕获组内容和匹配计数,消除了regex开发中的猜测和反复试验。适用于验证电子邮件和电话号码、从非结构化文本中提取日期和价格、构建代码库的搜索替换模式、学习regex语法。支持所有标准JavaScript regex功能,包括字符类、量词、锚点、捕获组(编号和命名)、前瞻和后瞻断言、交替匹配以及Unicode匹配。内置regex速查表提供常用模式的快速参考,无需任何外部依赖或注册即可使用。

何时使用此计算器

  • 验证Web表单中的用户输入。
  • 调试现有代码中失败的匹配。
  • 交互式学习regex语法。
  • 从文本中提取特定数据。
  • 构建搜索和替换模式。
  • 验证表单验证器。

步骤:

  1. 在模式输入框中使用标准正则表达式语法输入您的正则表达式——例如,\d{3}-\d{4} 用于匹配电话号码,或 ^[\w.-]+@[\w.-]+\.\w{2,}$ 用于验证电子邮件
  2. 选择适当的标志。
  3. 输入或粘贴测试文本。
  4. 查看结果面板。
  5. 使用速查表面板。

公式

模式 + 标志 → RegExp → 对测试文本执行 → 匹配数组 常见模式: - \d+ → 一个或多个数字 - [a-zA-Z]+ → 一个或多个字母 - ^…$ → 开头/结尾锚点 - (…) → 捕获组

使用场景

  • 验证电子邮件地址、电话号码、URL
  • 从文本中提取模式(日期、价格、ID)
  • 文本编辑器中的查找和替换操作
  • 网页表单中的输入验证

主要优势

  • 实时测试正则表达式匹配结果
  • 支持捕获组高亮和分组显示
  • 内置常用正则表达式模板
  • 支持JavaScript正则表达式语法
  • 完全在浏览器中保护隐私
  • 免费使用,无需注册,无广告,无使用限制——非常适合开发会话中的快速正则测试

专业提示

  • 保持正则表达式模式简单明了
  • 注意贪婪量词和懒惰量词的区别
  • 使用捕获组来提取匹配内容
  • 利用锚点进行位置指定
  • 在浏览器开发者工具中调试正则表达式

需要避免的常见错误

  • 忘记转义特殊字符导致匹配错误
  • 贪婪量词和懒惰量词混用
  • 未测试边界条件就投入使用
  • 忽略正则表达式的性能影响

关键术语解释

模式:使用regex语法编写的搜 {3} {4} 索表达式。
标志:修改行为的选项。
匹配:模式的成功出现。
捕获组:括号中的模式部分。
量词:指定前一元素出现次数 {n} 的字符。

相关概念

  • 正则表达式(Regex):定义用于匹配文本的搜索模式的字符序列。
  • 捕获组:正则表达式中用括号括起来的部分,用于提取匹配的特定部分。
  • 量词:指定前面的元素必须出现多少次的字符(例如 +、*、?、{n})。
  • 锚点:匹配文本中位置而非字符的零宽度断言(^ 表示开头,$ 表示结尾)。
  • 前瞻/后顾:在不消耗文本的情况下检查当前位置之前或之后的模式的零宽度断言。

示例

模式:^[\w.-]+@[\w.-]+\.\w{2,}$ 与测试文本:"请通过 [email protected] 或 [email protected] 联系我们" 匹配两个电子邮件地址并在结果列表中显示它们。

解读您的结果

从查看匹配数和高亮文本开始。如果您期望匹配但没有看到,请检查:(1)是否设置了全局标志(g)?(2)是否正确转义了特殊字符?(3)锚点是否正确?捕获组面板显示模式的每个括号部分捕获了什么。注意贪婪和懒惰匹配之间的区别。

常见问题

什么是正则表达式?
正则表达式(regex)是定义搜索模式的字符序列。它用于文本中的模式匹配,例如查找电子邮件地址、验证输入或从字符串中提取数据。
此工具使用哪种正则表达式引擎?
此工具使用 JavaScript 内置的 RegExp 引擎,支持大多数标准正则表达式功能,包括分组、前瞻、量词和字符类。
常见的正则表达式标志有哪些?
g(全局):查找所有匹配项,而不仅仅是第一个。i(不区分大小写):忽略大小写。m(多行):^ 和 $ 匹配行边界。s(dotall):. 也匹配换行符。
为什么我的正则表达式找不到匹配项?
常见问题:缺少用于多个匹配项的 g 标志、未转义特殊字符(., *, +, ?, [, ], (, )),或量词使用不当。
什么是正则表达式(regex)?
正则表达式(regex)是用于匹配字符串中字符组合的模式。它们是搜索、验证和文本处理的强大工具。正则表达式使用特殊字符,如 . * + ? ^ $ [] () {} | 来定义模式。
正则表达式中的 ^ 符号是什么意思?
在正则表达式中,^ 有两种含义:在字符类 [^abc] 内,表示'非'(否定)。在字符类之外,它将模式锚定在字符串的开头。例如,^hello 只匹配字符串开头的 'hello'。
正则表达式中 * 和 + 有什么区别?
两者都是量词:* 匹配零次或多次出现(可选),而 + 匹配一次或多次出现(必需)。因此,'ab*c' 匹配 'ac'、'abc'、'abbc' 等,而 'ab+c' 匹配 'abc'、'abbc',但不匹配 'ac'。
如何在正则表达式中匹配字面意义上的句点(.)?
句点(.)是一个表示'任意字符'的特殊字符。要匹配字面意义上的句点,请用反斜杠转义它:\. 例如,模式 www\.example\.com 精确匹配该 URL,而不是 'wwwXexampleYcom'。
什么是捕获组?
捕获组是正则表达式中用括号 () 括起来的部分。它们'捕获'匹配的文本以供后续使用。例如,(\d{4})-(\d{2})-(\d{2}) 分别从像 2024-01-15 这样的日期字符串中捕获年、月和日。
贪婪匹配和惰性匹配有什么区别?
贪婪量词(* + ? {})匹配尽可能多的文本。惰性量词(*? +? ?? {})匹配尽可能少的文本。例如,<.*> 完全匹配 '<div>内容</div>'(贪婪),而 <.*?> 分别匹配 '<div>' 和 '</div>'(惰性)。
如何用正则表达式验证电子邮件?
一个基本的电子邮件模式:^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$ 这匹配大多数有效的电子邮件,但不能覆盖所有边缘情况。对于生产环境使用,请考虑使用专门的电子邮件验证库来处理国际域名和特殊字符。

发现更多工具

精选于全站工具库的新发现。