实时匹配高亮、模式验证和常见正则表达式符号解释,测试正则表达式。使用自定义标签保存和重用您常用的模式。
输入模式和测试文本以查看结果
输入模式和测试文本以查看结果
尚未保存任何模式
.
匹配除换行符外的任何字符\d
匹配任何数字 (0-9)\D
匹配任何非数字\w
匹配任何单词字符 (a-z, A-Z, 0-9, _)\W
匹配任何非单词字符\s
匹配任何空白字符\S
匹配任何非空白字符^
匹配行的开始$
匹配行的结束*
匹配前一个字符的 0 次或更多次+
匹配前一个字符的 1 次或更多次?
匹配前一个字符的 0 次或 1 次{n}
匹配前一个字符的 n 次{n,}
匹配前一个字符的至少 n 次{n,m}
匹配前一个字符的 n 到 m 次[abc]
匹配括号中的任一字符[^abc]
匹配不在括号中的任何字符(abc)
将多个标记组合在一起并捕获匹配a|b
匹配 a 或 b\b
匹配单词边界位置正则表达式(regex)模式测试器是开发人员、数据分析师和任何从事文本处理的人的重要工具。这个全面的正则表达式模式验证器允许您实时创建、测试和完善正则表达式,提供对模式匹配的即时可视反馈。无论您是在验证电子邮件地址、解析日志文件还是从文本中提取特定数据,我们的正则表达式测试器都使开发和调试过程更快、更直观。
正则表达式是强大的模式匹配序列,能够实现复杂的文本搜索、验证和操作。然而,它们的语法可能复杂且难以掌握。这个正则表达式模式测试器通过在您输入时高亮匹配、验证模式语法,并允许您保存常用模式以供将来参考,从而简化了这一过程。
使用我们的正则表达式验证器非常简单直观。请按照以下步骤开始:
输入正则表达式模式:在指定的输入框中输入您的正则表达式模式。该工具实时验证您的模式,提醒您任何语法错误。
选择正则表达式标志:为您的模式选择适当的标志:
g
(全局):查找所有匹配项,而不是在第一个匹配后停止i
(不区分大小写):使模式不区分大小写m
(多行):使 ^
和 $
匹配每行的开始/结束输入测试文本:在测试文本区域输入您想要测试的文本。
实时查看结果:在您输入时,该工具会自动:
保存有用的模式:对于您经常使用的模式:
复制结果:使用“复制匹配项”按钮将所有匹配的文本复制到剪贴板,以便在其他应用程序中使用。
界面分为两个主要面板:输入面板,您在其中输入模式和测试文本,以及结果面板,显示匹配和模式信息。
正则表达式使用特殊字符和序列来定义搜索模式。以下是我们工具支持的基本正则表达式符号指南:
符号 | 描述 | 示例 | 匹配 |
---|---|---|---|
. | 匹配除换行符外的任何字符 | a.c | "abc", "adc", "a1c" 等 |
\d | 匹配任何数字(0-9) | \d{3} | "123", "456", "789" 等 |
\D | 匹配任何非数字 | \D+ | "abc", "xyz" 等 |
\w | 匹配任何单词字符(a-z, A-Z, 0-9, _) | \w+ | "abc123", "test_123" 等 |
\W | 匹配任何非单词字符 | \W+ | "!@#", " + " 等 |
\s | 匹配任何空白字符 | a\sb | "a b", "a\tb" 等 |
\S | 匹配任何非空白字符 | \S+ | "abc", "123" 等 |
符号 | 描述 | 示例 | 匹配 |
---|---|---|---|
^ | 匹配行的开始 | ^abc | 行首的 "abc" |
$ | 匹配行的结束 | abc$ | 行尾的 "abc" |
\b | 匹配单词边界 | \bword\b | "word" 作为完整单词 |
符号 | 描述 | 示例 | 匹配 |
---|---|---|---|
* | 匹配前一个字符的 0 次或多次 | a*b | "b", "ab", "aab" 等 |
+ | 匹配前一个字符的 1 次或多次 | a+b | "ab", "aab", "aaab" 等 |
? | 匹配前一个字符的 0 次或 1 次 | colou?r | "color", "colour" |
{n} | 精确匹配前一个字符的 n 次 | a{3} | "aaa" |
{n,} | 匹配前一个字符至少 n 次 | a{2,} | "aa", "aaa", "aaaa" 等 |
{n,m} | 匹配前一个字符 n 次到 m 次 | a{2,4} | "aa", "aaa", "aaaa" |
符号 | 描述 | 示例 | 匹配 |
---|---|---|---|
[abc] | 匹配括号中的任一字符 | [aeiou] | "a", "e", "i", "o", "u" |
[^abc] | 匹配不在括号中的任一字符 | [^aeiou] | 除 "a", "e", "i", "o", "u" 以外的任何字符 |
[a-z] | 匹配范围内的任一字符 | [a-z] | 任何小写字母 |
符号 | 描述 | 示例 | 匹配 |
---|---|---|---|
(abc) | 将多个标记组合在一起并捕获匹配 | (abc)+ | "abc", "abcabc" 等 |
a|b | 匹配 a 或 b | cat|dog | "cat", "dog" |
一旦您掌握了基础知识,您可以创建更复杂的模式来解决复杂的文本处理挑战:
1^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
2
该模式通过确保它们遵循标准格式:用户名@域名.tld 来验证电子邮件地址。
1^(https?:\/\/)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)$
2
该模式验证 URL,包括带有或不带有 http/https 协议的 URL。
1^\(?(\d{3})\)?[- ]?(\d{3})[- ]?(\d{4})$
2
该模式匹配美国电话号码的各种格式:(123)456-7890、123-456-7890 或 1234567890。
1^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$
2
该模式验证 YYYY-MM-DD 格式的日期,并对月份和日期范围进行基本验证。
前瞻和前顾断言允许您仅在后面或前面有另一个模式时匹配模式:
a(?=b)
仅在后面跟着 "b" 时匹配 "a"a(?!b)
仅在后面不跟着 "b" 时匹配 "a"(?<=a)b
仅在前面有 "a" 时匹配 "b"(?<!a)b
仅在前面没有 "a" 时匹配 "b"我们的正则表达式测试器支持多种标志,这些标志修改模式的匹配方式:
^
和 $
匹配每行的开始/结束正则表达式在不同领域有许多实际应用:
表单验证:确保用户输入符合所需格式:
^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$
^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$
HTML 解析:提取特定元素或属性:
<img[^>]+src="([^">]+)"
<a[^>]+href="([^">]+)"
日志文件分析:从日志条目中提取信息:
\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b
\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}
ERROR: .*
CSV 解析:处理可能包含引号字段的逗号分隔值:
(?:^|,)(?:"([^"]*(?:""[^"]*)*)"|([^,]*))
查找和替换:识别需要替换的模式:
<[^>]*>
(\d{3})(\d{3})(\d{4})
→ ($1) $2-$3
内容提取:从非结构化文本中提取特定信息:
\b(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s+\d{1,2},\s+\d{4}\b
\$\d+(?:\.\d{2})?
语法高亮:识别语言结构:
\b(?:var|let|const)\s+([a-zA-Z_$][\w$]*)\b
function\s+([a-zA-Z_$][\w$]*)\s*\(
代码重构:查找需要更新的模式:
\.oldMethod\(
eval\(
我们的正则表达式模式测试器包括一个模式管理系统,允许您保存和重用您常用的表达式:
考虑保存以下模式:
保存模式时,使用描述性标签:
按以下方式组织您的保存模式:
虽然我们的工具不直接支持用户之间的模式共享,但您可以:
即使是经验丰富的开发人员也会遇到正则表达式的挑战。以下是常见问题的解决方案:
如果您的模式显示验证错误:
如果您的正则表达式运行缓慢或导致浏览器延迟:
(a+)+
)如果您的模式匹配了不想要的文本:
^
和 $
)来匹配整个字符串\b
)如果您的模式没有匹配预期的文本:
i
标志)虽然正则表达式功能强大,但并不总是每个文本处理任务的最佳解决方案:
对于简单的文本操作,本地字符串方法通常更清晰且更高效:
String.indexOf()
用于查找子字符串String.startsWith()
和 String.endsWith()
用于检查字符串边界String.split()
用于基本标记化对于结构化数据格式,专用解析器更为健壮:
为了理解文本的含义而不仅仅是模式:
在以下情况下考虑使用替代方案:
正则表达式(regex)是一系列字符,定义了一个搜索模式。这些模式可用于字符串搜索、匹配和文本操作。
正则表达式模式测试器帮助您开发和调试正则表达式,通过提供对匹配的即时可视反馈、验证模式语法,并允许您在代码中实现之前先进行不同模式和标志的实验。
要匹配通常在正则表达式中具有特殊含义的字面特殊字符,您需要用反斜杠转义它们。例如,要匹配字面点,请使用 \.
而不是仅仅使用 .
。
.*
和 .*?
在正则表达式模式中有什么区别?.*
是一个贪婪量词,匹配尽可能多的字符,而 .*?
是一个懒惰(非贪婪)量词,匹配尽可能少的字符。这种区别在您想找到最短匹配而不是最长匹配时很重要。
虽然核心正则表达式语法在许多语言中是相似的,但在实现上存在微妙的差异。我们的测试器使用 JavaScript 的正则表达式引擎,这与许多网络语言兼容,但可能与 Python、Java 或 Perl 中的正则表达式有所不同。
要验证整个字符串是否与模式匹配,请在正则表达式的开头使用 ^
锚,在结尾使用 $
锚。例如,^[0-9]+$
仅会匹配完全由数字组成的字符串。
捕获组是用括号 ()
创建的,允许您提取匹配文本的特定部分。在我们的测试器中,您可以看到所有匹配,包括捕获的组。在编程语言中,您通常可以通过索引匹配结果来访问这些捕获。
要提高正则表达式的效率:使字符类具体,避免不必要的捕获组(在可能的情况下使用非捕获组 (?:...)
),限制前瞻/前顾的使用,避免像嵌套量词这样的灾难性回溯模式。
常见错误包括:未转义特殊字符、创建过于贪婪的模式、忘记锚定模式(使用 ^
和 $
)、编写过于复杂的表达式,难以维护。
正则表达式并不适合解析像 HTML 或 XML 这样的嵌套结构。虽然您可以为简单的 HTML 匹配创建正则表达式模式,但对于复杂的 HTML 处理,通常最好使用专用的 HTML 解析器。
今天就尝试我们的正则表达式模式测试器,以简化您的文本处理任务,验证输入格式,并从非结构化文本中提取有意义的数据。无论您是学习正则表达式基础知识的初学者,还是在处理复杂模式匹配的经验丰富的开发人员,我们的工具都提供了您需要的功能,以高效地创建、测试和完善您的正则表达式模式。