点击示例可直接在可视化器中查看,我们提供了常见的使用场景分类。
这些高级功能可以帮助你更深入地理解和应用正则表达式。
逐步查看正则表达式的匹配过程,了解每个部分如何工作。
点击"开始调试"来分析正则表达式的匹配过程
根据描述自动生成正则表达式,无需记忆复杂语法。
选择一个模式并点击"生成正则表达式"
使用正则表达式执行强大的文本替换操作。
当前正则表达式将匹配组1,并与组2一起格式化
分析正则表达式的执行性能和优化建议。
点击"执行性能分析"来评估正则表达式的效率
符号 | 说明 | 示例 |
---|---|---|
. | 匹配除换行符以外的任意字符 | a.c 匹配 "abc", "adc" 等 |
\d | 匹配数字,等价于 [0-9] | \d{3} 匹配 "123", "456" 等 |
\D | 匹配非数字,等价于 [^0-9] | \D+ 匹配 "abc", "xyz" 等 |
\w | 匹配字母、数字、下划线,等价于 [A-Za-z0-9_] | \w+ 匹配 "abc123", "test_123" 等 |
\W | 匹配非字母、数字、下划线,等价于 [^A-Za-z0-9_] | \W+ 匹配 "!@#", "%-=" 等 |
\s | 匹配任意空白字符,包括空格、制表符、换行符 | a\sb 匹配 "a b", "a\tb" 等 |
\S | 匹配非空白字符 | \S+ 匹配任何非空白字符序列 |
\b | 匹配单词边界 | \bword\b 匹配完整单词 "word" |
\B | 匹配非单词边界 | \Bword 匹配 "keyword" 中的 "word" |
符号 | 说明 | 示例 |
---|---|---|
* | 匹配前面的表达式 0 次或多次 | a* 匹配 "", "a", "aa", "aaa" 等 |
+ | 匹配前面的表达式 1 次或多次 | a+ 匹配 "a", "aa", "aaa" 等 |
? | 匹配前面的表达式 0 次或 1 次 | colou?r 匹配 "color" 和 "colour" |
{n} | 匹配前面的表达式恰好 n 次 | a{3} 匹配 "aaa" |
{n,} | 匹配前面的表达式至少 n 次 | a{2,} 匹配 "aa", "aaa" 等 |
{n,m} | 匹配前面的表达式 n 到 m 次 | a{1,3} 匹配 "a", "aa", "aaa" |
^ | 匹配字符串开始位置 | ^abc 匹配以 "abc" 开头的字符串 |
$ | 匹配字符串结束位置 | abc$ 匹配以 "abc" 结尾的字符串 |
符号 | 说明 | 示例 |
---|---|---|
| | 或运算符,匹配 | 前或后的表达式 | cat|dog 匹配 "cat" 或 "dog" |
() | 分组,将括号内的表达式视为一个整体 | (ab)+ 匹配 "ab", "abab", "ababab" 等 |
(?:) | 非捕获分组,不创建反向引用 | (?:ab)+ 类似 (ab)+,但不捕获匹配 |
[abc] | 字符集,匹配方括号中的任意字符 | [aeiou] 匹配任何元音字母 |
[^abc] | 反向字符集,匹配不在方括号中的任意字符 | [^0-9] 匹配任何非数字字符 |
(?=) | 正向先行断言,匹配后面跟着括号内表达式的位置 | a(?=b) 匹配后面跟着 "b" 的 "a" |
(?!) | 负向先行断言,匹配后面不跟着括号内表达式的位置 | a(?!b) 匹配后面不跟着 "b" 的 "a" |
(?<=)< /td> | 正向后行断言,匹配前面跟着括号内表达式的位置 | (?<=a)b 匹配前面有 "a" 的 "b" |
(? | 负向后行断言,匹配前面不跟着括号内表达式的位置 | (? 匹配前面没有 "a" 的 "b" |
标志 | 说明 | 示例 |
---|---|---|
g | 全局匹配,找到所有匹配项而非在第一个匹配后停止 | /a/g 匹配所有 "a" |
i | 忽略大小写匹配 | /a/i 匹配 "a" 和 "A" |
m | 多行匹配,^ 和 $ 分别匹配每行的开头和结尾 | /^a/m 匹配每行开头的 "a" |
s | 使 . 匹配包括换行符在内的所有字符 | /a.b/s 匹配 "a\nb" |
u | 启用 Unicode 匹配 | /\u{1F600}/u 匹配 Unicode 表情符号 |
y | 执行"粘性"搜索,匹配从目标字符串的当前位置开始 | /b/y 只在索引处匹配 "b" |
(?:)
代替捕获分组 ()
,当不需要引用匹配内容时.*
这样的贪婪匹配,尤其在大文本中,可以使用 .*?
非贪婪匹配代替\d
代替 [0-9]
)提高可读性(?=)
, (?!)
)来创建复杂条件,而不增加匹配组{2,4}
)代替泛泛的 +
或
*
,提高效率
^
, $
, \b
)能显著提高匹配效率,限定搜索范围1. 在输入框中输入正则表达式
2. 点击"可视化"按钮生成图形化表示
3. 在测试文本框中输入文本,查看匹配结果
正则表达式是用于匹配字符串中字符组合的模式。它由以下几个部分组成:
下面的链接包含了当前的正则表达式和选项设置: