如何逐步测试正则表达式
快速解答
要测试正则表达式:打开正则表达式测试器,在正则表达式字段中输入您的模式,输入您的测试文本,匹配项将立即突出显示。该工具显示匹配位置、捕获组并支持标志(g、i、m、s、u)。所有处理都在您的浏览器本地进行。
介绍
正则表达式 (regex) 是用于匹配、搜索或替换文本的模式。正则表达式功能强大,但众所周知难以阅读和调试——单个放错位置的字符可能会完全改变含义。正则表达式测试器可让您根据示例文本试验模式、查看突出显示的匹配项以及检查捕获组。本指南向您展示如何使用免费的在线工具在浏览器中测试正则表达式。
步步
-
打开正则表达式测试器工具
转到正则表达式测试器工具页面。该工具具有用于正则表达式模式、标志和测试文本的字段。
-
输入您的正则表达式模式
输入您的正则表达式模式(周围没有斜杠)。例如,\d+ 匹配一个或多个数字,[A-Z]\w+ 匹配大写单词。该工具会在您键入时解析模式。
-
设置标志
选择标志:g(全局 - 查找所有匹配项)、i(不区分大小写)、m(多行 - ^ 和 $ 匹配行边界)、s(dotall - . 匹配换行符)、u(unicode)。大多数测试使用 g,有时使用 i。
-
输入您的测试文本
粘贴或键入您想要测试的文本。该工具应用正则表达式并立即突出显示文本中的所有匹配项。
-
查看匹配并捕获组
该工具显示每场比赛及其位置和内容。如果您的模式具有捕获组(括号),则会显示每个组的内容。使用它来调试模式为何按预期匹配(或不匹配)。
示例
匹配所有类似电子邮件的模式
输入: Pattern: [a-z]+@[a-z]+\.[a-z]+, Flags: gi, Text: 'Contact [email protected] or [email protected]'
输出: 匹配:“[email protected]”、“[email protected]”
使用捕获组提取数字
输入: 模式:(\d+)-(\d+),标志:g,文本:“订单 123-456 和 789-012”
输出: 比赛 1:“123-456”(第 1 组:“123”,第 2 组:“456”)
比赛 2:“789-012”(第 1 组:“789”,第 2 组:“012”)
验证日期格式
输入: Pattern: ^\d{4}-\d{2}-\d{2}$, Flags: none, Text: '2026-09-02'
输出: 匹配:'2026-09-02'(完整字符串匹配)
常见问题
- 忘记转义特殊字符 — .、*、+、?、^、$、(、)、[、]、{、}、|、\ 等字符是特殊字符。使用 \ 从字面上转义它们。
- 贪婪与惰性匹配 —* 和 + 是贪婪的(尽可能多地匹配)。添加 ?用于惰性匹配(例如,.*? 尽可能少地匹配)。
- 灾难性回溯 (ReDoS) — 某些具有嵌套量词的模式可能会在某些输入上花费指数时间。使用实际输入进行测试并观察超时。
- 锚定 - 没有 ^ 和 $,模式匹配字符串中的任何位置。使用 ^...$ 匹配整个字符串。
提示
- 从一个简单的模式开始,逐渐增加复杂性——一次性调试一个复杂的正则表达式非常困难。
- 使用命名捕获组 (?<name>...) 提高可读性 — 组名称比编号组的意图更清晰。
- 使用匹配和不匹配的输入进行测试,以确保您的模式不会过度匹配。
- 使用我们的正则表达式测试器进行即时、私人测试 - 您的模式和文本永远不会离开您的浏览器。