本文出自 http://blog.csdn.net/shuangde800
------------------------------------------------------------------------------------------------
元字符 | 用法 |
.(点) |
匹配除换行符之外的任何一个单个字符。空格也将作为字符。
例如p.p可以匹配pep,pip和pcp.
|
*(星号) |
星号前面的一个字符可以出现0次或多次。
例如,bugs*将匹配bugs,bugss或bug。
*可以跟任何元字符。例如,由于.(点)代表任何字符,因此 .* 表示“匹配任意数量的任何字符”。
:s/End.*/End/ 会删除End后面的所有字符
|
^ |
当处在正则表达式的第一位时,它要求后面的正则表达式要出现在一行的开始。
例如,^Part可以匹配Parter,Partxx,但是不能匹配HeParter; ^...匹配一行的前三个字符。当^不在正则表达式的开始时,^只代表本身。
|
$ |
当处于正则表达式的最后一位时,它要求前面的正则表达式要出现在一行的结尾。
例如,here$可以匹配where, 但是不能匹配whoherehe。当不在结尾时,$就代表它本身。
|
\ | 这是转义字符,可以把后面的元字符看成普通字符。例如\.表示一个普通的字符点, \*表示普通字符星号, \\可以获得真正的反斜杆(\)。 |
[ ] |
匹配方括号中字符的任意一个。
例如[AB] 将匹配A或B,p[aeiou]t,匹配pat,pet,pit,pot或put。可以通过使用连字符(-)来指定范围。例如,[A-Z]匹配字母A到Z之间的任意一个大写字母。[0-9]将匹配数字0到9之间的任意一个数字。
可以在方括号内包括多个范围,也可以把范围和单独的字符混合在一起。例如[:;A-Za-z()]将匹配四种不同的标点符号和所有的字母。
大部分元字符都将在方括号内失去它们的特殊含义,因此如果想把它们作为普通字符使用,就不需要对它们进行转义。在方括号内仍需要转义的三个元字符是\,-和]。连字符(-)的含义是范围说明符,如果要使用真正的连字符,也可以将其放在放括号内的第一个字符位置。
插入符号(^)只有它在方括号内为第一个字符时才有特殊含义,但是这种情况下其含义与通常^元字符的含义不同。作为方括号的第一个字符,^使它们的含义反过来:将匹配不在方括号里的任何一个字符。例如,[^a-z]将匹配任何不是小写字母的字符。
|
\(和 \) |
把\(和\)之间的模式保存到专门的存储空间(存储缓冲区)中,单一行最多可以保存9个模式。例如,要把this or That改为That or this
:%s/\(this\) or \(That\)/\2 or \1/ \2和\1是对缓冲区的引用
|
\<和\> | 在单词的开始(\<)或结尾(\>)匹配字符。单词的开始或结束由标点符号或空格决定。
例如: \<ac将只匹配ac开头的单词, ac\>将匹配以ac结尾的单词
|
~ |
匹配上一次搜索中使用的任何正则表达式。
如果搜索过The,那么可以使用/~n来搜索Then。可以把~等价与上次的The,再加上n组合成Then
|
元字符 | 用法 |
\ | 转义 |
& |
用在替换串,它代表与搜索模式想匹配的整个文本,即“重现”搜索串。这在试图避免重复输入文本时很有用。例如,
:%s/hello/&, world/ 将会把hello替换成hello, wolrd
:%s/.*/(&)/ 将会把所有行用()包含起来
|
~ |
用在替换串中,重复上次的替换串。例如,
上次使用:$ s/his/their/ 把his改为their
这次使用:$ s/her/~/ 会把her改为their
|
\u或\l
|
把替换串中的下一个字符分别变成大写或者小写。例如,
:s/yes, sir/\uyes, \usir/g 把yes, sir变成Yes, Sir
|
\U 或 \L
|
将跟在后面的匹配串全部变成大写或小写。例如,
:s/world/\U&/ 把world变成WORLD
|