正则表达式元字符
元字符
|
功能
|
例子
|
匹配内容
|
^
|
行起始锚
|
/^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]/
|
匹配任意字符不在A 和Z之间
|
\
|
转义一个元字符
|
/love\./
|
匹配包含love,紧跟着.
|
其他的元字符支持
|
\<
|
单词开始锚
|
/\<love/
|
匹配行中含有单词以love开始 (supported by vi and grep)
|
\>
|
单词结束锚
|
/love\>/
|
匹配行包含单词以love结束 (supported by vi and grep)
|
\(..\)
|
标签匹配
|
/\(love\)able \1er/
|
可以使用到9个标签, 起始部分是模式。例如, 模式love被保存为标签1, 被后面引用为\1。在这个例子中,搜索模式包含lovable后紧跟lover (supported by sed, vi, and grep)
|
x\{m\} or
x\{m,\} or
x\{m,n\}
|
表示字母x出现m次
表示字母x出现至少m次
表示字母x至少出现m次,不超过n次
|
o\{5,10\}
|
如果一行中含有连续出现5-10次o字母 (supported by vi and grep)
|
例子3.1
/love/
模式love可以匹配自己和作为其他词的一部分匹配,例如lovely,gloves和clover。
例子3.2
/^love/
起始锚,匹配只能匹配以love开始的词。
例子3.3
/love$/
结束锚,匹配以love结束的词。
例子3.4
/l.ve/
.只能匹配一个字符。
例子3.5
/o*ve/
*匹配0到多个字符,比如love, loooove, lve
例子3.6
/[Ll]ove/
匹配Love和love
例子3.7
/ove[a-z]/
[a-z]中的任何一个字符都可以匹配
例子3.8
/ove[^a-zA-Z0-9]/
匹配ove后跟的字符不在a-z,A-Z,0-9的字符
例子3.9
/^[A–Z]..$/
匹配起始为[A-Z]之间的字母,跟随两个任意字符,紧接着是一个新行。
/^[A–Z][a–z ]*3[0–5]/
匹配以大写字母开始,跟着0个或者多个小写字母或空格,跟随着数字3和另外一个在0-5之间的数字。
/[a–z]*\ ./
匹配包含0个或多个小写字母,跟着.
/^ *[A–Z][a–z][a–z]$/
匹配其实是0个或者多个空格(tab不能算作空格),跟着大写字母,两个小写字母和一个新行。
/^[A–Za–z]*[^,][A–Za–z]*$/
匹配0个或多个大写或小写字母跟着非逗号,然后紧跟着0个或者多个大写或小写字母结束
例子3.10
/\<fourth\>/
在每行上查找fourth这个单词,一个单词可以被空格分隔,结束于标点符号,起始于一行,结束于一行等等。
例子3.11
/\<f.*th\>/
匹配单词以f开始,跟着0个或者多个任意的字符,结束语th。
例子3.12
1,$s/\([0o]ccur\)ence/\1rence/
搜索整个字符串occurrence或者Occurrence
例子3.13
:s/\(square\) and \(fair\)/\2 and \1/
将会匹配fair and square。
例子3.14
/5\{2\}2\{3\}\./
匹配所有行中包含出现两次数字5,跟着出现三次数字2,跟着.
posted on 2008-07-09 11:21
一叶笑天 阅读(368)
评论(0) 编辑 收藏 所属分类:
Shell技术