正则表达式是描述字符串集的表示法。 当字符串位于正则表达式描述的集合中时,我们表示正则表达式与字符串
匹配
。
最简单的正则表达式是单个文本字符。 除了
*+?()|
等元字符,字符匹配自身。 若要匹配元字符,请使用反斜杠将其转义。 例如,
\+
匹配文本加字符。
可以更改或连接两个正则表达式,形成一个新的正则表达式:如果
e
1
匹配
s
,
e
2
匹配
t
,则
e
1
* |
e
2
匹配
s
或
t
,而且
e
1
*
e
2
匹配
st
。
元字符,并且
?
是重复运算符
*``+
:
e
1
*
匹配零个或多个序列 (可能不同的) 字符串,每个字符串匹配
e
1
:
e
1
+
匹配一个或多个;
e
1
?
匹配零或一。
运算符优先级(从最弱到最强绑定)如下所示:
重复运算符
显式括号可用于强制使用不同的含义,如算术表达式中一样。 一些示例:
ab|cd
等效于
(ab)|(cd)
;
ab\
等效于
a(b\)
。
目前所介绍的语法大部分为传统的 Unix
egrep
正则表达式语法。 此子集足以描述所有常规语言。 正则语言是一组字符串,只需使用固定的内存量,即可在单次传递文本中进行匹配。 较新的正则表达式工具 (特别是 Perl 和复制它的语言) 添加了许多新的运算符和转义序列。 这些更改使正则表达式更简洁,有时更隐秘,但功能不强。
本页列出了 RE2 接受的正则表达式语法。
它还列出了 PCRE、PERL 和 VIM 接受的一些语法。
单字符表达式的类型
[[:graph:]]
可打印与可见字符(等价于
[!-~]
等价于
[A-Za-z0-9!"#$%&'()\*+,\-./:;<=>?@[\\\]^_
`
{\|}~]
)
[[:lower:]]
匹配小写字符(等价于 [a-z])
[[:print:]]
匹配可打印字符(等价于 [-~] 等价于 [[:graph:]])
[[:punct:]]
匹配标点字符(等价于 [!-/:-@[-`{-~])
[[:space:]]
匹配任何空白字符(等价于 [\t\n\v\f\r])
[[:upper:]]
匹配大写字符(等价于 [A-Z] )
[[:word:]]
匹配包括下划线的任何单词字符(等价于 [0-9A-Za-z_])
[[:xdigit:]]
匹配十六进制数字字符(等价于 [0-9A-Fa-f])
本页面的某些部分是根据 Chromium.org 创建和共享的作品所做的修改,并根据
Creative Commons Attribution 4.0 国际许可证
中所述的条款进行使用。 可在
此处
找到原始页面。
此作品通过
Creative Commons Attribution 4.0 国际许可证
获得许可。
Microsoft Edge Enterprise 登录页面