正规表达式的元字符集
|
|||
元字符
|
功能
|
例子
|
匹配什么
|
^
|
锚定行的开始
|
/^love/
|
匹配所有以love开头的行
|
$
|
锚定行的结束
|
/love$/
|
匹配所有以love结束的行
|
.
|
匹配一个字符
|
/l..e/
|
匹配所有这样的行,这些行包含这样的字符:第一个字符是l,紧跟着两个字符,然后是e
|
*
|
代表0个或者多个先前字符
|
/*love/
|
匹配所有这样的行,有0个或者多个空格,空格后跟着love
|
[]
|
匹配字符组中的一个字符
|
/[Ll]ove/
|
匹配所有包含love或者Love的行
|
[x-y]
|
匹配以字符范围组成的组中的一个字符
|
/[A-Z]ove/
|
匹配所有这样的行, 这些行包含如下的字符,第一个字符是从A到Z中间的一个,后面跟着ove
|
[^]
|
匹配一个不在范围内的字符
|
/[^A-Z]ove/
|
匹配所有这样的行,这些行包含如下的字符,第一个字符不是从A到Z中间的一个,后面跟着ove
|
\
|
用来转义一个元字符
|
/love\./
|
匹配所有这样的行,这些行包含如下的字符:love后面跟着一个点。通常点是表示任何字符的通配符。
|
许多使用RE元字符集的UNIX程序都支持附加元字符集。
|
|||
\<
|
锚定单词的开始
|
/\<love/
|
匹配所有这样的行,这些行包含以love开头的单词(vi和grep支持这个功能)
|
\>
|
锚定单词的结束
|
/love\>/
|
匹配所有这样的行,这些行包含以love结束的单词(vi和grep)支持这个功能
|
\(..\)
|
标记后面用到的匹配字符(传)
|
/\(love\)able\lrs/
|
最多可以使用9个标签。第一个标签是模板最左边的部分。在本例子中,模板love保存为标签l,后面的\l指的就是Love;本例子搜索的是这样的行,这些行包含这样的字符,在Loveable后面跟着lovers
|
x\{m\}or
|
m次复制字符 x
|
o\{5,10\}
|
匹配所有这样的行,包含的o的数量在5到10个之间。(vi和grep支持这个功能)
|
x\{m,\}or
|
至少m次复制字符x
|
||
x\{m,n\}
|
至少m次,至多n次复制字Xa
|
a.各种版本的UNIX以及模板匹配(pattern-mactching)实用程序并不都是可信赖的,通常我们使用vi和grep.