4.1. 正则表达式

4.1.1. 什么是正则表达式?

正则表达式 是一个描述一组字符串的模式。正则表达式的构造方式类似于算术表达式,通过使用各种运算符来组合较小的表达式。

基本的构建块是匹配单个字符的正则表达式。大多数字符,包括所有字母和数字,都是匹配它们自身的正则表达式。任何具有特殊含义的元字符都可以通过在其前面加上反斜杠来引用。

4.1.2. 正则表达式元字符

正则表达式后面可以跟几个重复运算符(元字符)之一

表 4-1. 正则表达式运算符

运算符效果
.匹配任何单个字符。
?前面的项是可选的,最多匹配一次。
*前面的项将被匹配零次或多次。
+前面的项将被匹配一次或多次。
{N}前面的项正好匹配 N 次。
{N,}前面的项匹配 N 次或更多次。
{N,M}前面的项至少匹配 N 次,但不超过 M 次。
-表示范围,如果它不是列表中的第一个或最后一个,或者不是列表中的范围的结束点。
^匹配行首的空字符串;也表示不在列表范围内的字符。
$匹配行尾的空字符串。
\b匹配单词边缘的空字符串。
\B匹配空字符串,前提是它不在单词的边缘。
\<\<
\>\>

两个正则表达式可以连接;生成的正则表达式匹配通过连接分别匹配连接的子表达式的两个子字符串而形成的任何字符串。

两个正则表达式可以通过中缀运算符 "|" 连接;生成的正则表达式匹配与任一子表达式匹配的任何字符串。

重复优先于连接,而连接又优先于选择。整个子表达式可以用括号括起来以覆盖这些优先级规则。

4.1.3. 基本正则表达式与扩展正则表达式

在基本正则表达式中,元字符 "?""+""{""|""("")" 失去其特殊含义;请改用反斜杠版本 "\?""\+""\{""\|""\(""\)"

请查阅您的系统文档,以了解使用正则表达式的命令是否支持扩展表达式。