vim正则表达式笔记

date: 2017.08.27; modification:2018.03.26

目录:

1 元字符

1.1 单字符元字符

元字符 说明
. 匹配任意一个字符
[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 匹配空白字符, 等同于[ ].
\S 匹配非空白字符, 等同于[^ ].
\a 所有的字母字符. 等同于[a-zA-Z]
\l 小写字母 [a-z]
\L 非小写字母 [^a-z]
\u 大写字母 [A-Z]
\U 非大写字母 [^A-Z]

1.2 转义元字符

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

1.3 表示数量的元字符

元字符 说明
* 匹配0-任意个
+ 匹配1-任意个
? 匹配0-1个
{n,m} 匹配n-m个
{n} 匹配n个
{n,} 匹配n-任意个
{,m} 匹配0-m个
{-n,m} n个到m个(忽略优先)
{-} 0个或多个(忽略优先)
{-1,} 1个或多个(忽略优先)
{-,1} 0个或1个(忽略优先)

1.4 表示位置的符号

元字符 说明
$ 匹配行尾
^ 匹配行首
\< 匹配单词词首
\> 匹配单词词尾

1.5 环视

vim Perl 意义 例子
@= (?= 顺序(右)环视 >\@= 右侧为>
@! (?! 顺序(右)否定环视
\@<= (?<= 逆序(左)环视 \(<\)\@<= 左侧为<
\@<! (?<! 逆序(左)否定环视
\@> (?> 固化分组
%(atom) (?: 非捕获型括号

1.6 其他

\| "或"操作符
\& 并列