在vim中使用正则表达式

元字符 说明
. 匹配任意一个字符
[abc] 匹配方括号中的任意一个字符。可以使用-表示字符范围,如[a-z0-9]匹配小写字母和阿拉伯数字。
[^abc] 在方括号内开头使用^符号,表示匹配除方括号中字符之外的任意字符。
\d 匹配数字,等同于[0-9]。
\D 匹配非数字,等同于[^0-9]。
\x 匹配十六进制数字,等同于[0-9A-Fa-f]。
\X 匹配非十六进制数字,等同于[^0-9A-Fa-f]。
\w 匹配单词字母,等同于[0-9A-Za-z]。
\W 匹配非单词字母,等同于[^0-9A-Za-z
]。
\t 匹配<TAB>字符。
\s 匹配空白字符,等同于[ /t]。
\S 匹配非空白字符,等同于[^ /t]。
\a 所有的字母字符. 等同于[a-zA-Z]
\l 小写字母 [a-z]
\L 非小写字母 [^a-z]
\u 大写字母 [A-Z]
\U 非大写字母 [^A-Z]

表示数量的元字符
元字符 说明

  • 匹配0-任意个
    + 匹配1-任意个
    \? 匹配0-1个
    {n,m} 匹配n-m个
    {n} 匹配n个
    {n,} 匹配n-任意个
    {,m} 匹配0-m个
    _. 匹配包含换行在内的所有字符
    {-} 表示前一个字符可出现零次或多次,但在整个正则表达式可以匹配成功的前提下,匹配的字符数越少越好
    \= 匹配一个可有可无的项
    _s 匹配空格或断行
    _[]

元字符 说明
* 匹配 * 字符。
. 匹配 . 字符。
\/ 匹配 / 字符。
\/ 匹配 / 字符。
[ 匹配 [ 字符。

表示位置的符号
元字符 说明
$ 匹配行尾
^ 匹配行首
\< 匹配单词词首
\> 匹配单词词尾

替换变量
在正规表达式中使用 ( 和 ) 符号括起正规表达式,即可在后面使用\1、\2等变量来访问 ( 和 ) 中的内容。

懒惰模式
{-n,m} 与{n,m}一样,尽可能少次数地重复
{-} 匹配它前面的项一次或0次, 尽可能地少
| “或”操作符
\& 并列

函数式
:s/替换字符串/\=函数式
在函数式中可以使用 submatch(1)、submatch(2) 等来引用 \1、\2 等的内容,而submatch(0)可以引用匹配的整个内容。

与Perl正则表达式的区别 ?
元字符的区别
Vim语法 Perl语法 含义
+ + 1-任意个
\? ? 0-1个
{n,m} {n,m} n-m个
(和) (和) 分组