VIM正则表达式
之前粗略的看了正则表达式的一些内容,但是在VIM中一直用的很少,刚才无意间看到了使用VIM对词进行大小写转换,中间出现了一些正则表达式的内容,从网上找了些内容,觉得可以留下来做个笔记,供以后自己参考。
文章的主要内容参考该博客。
量词
VIM中的量词与perl相比
| VIM | Perl | 意义 | |
|---|---|---|---|
| * | * | 0个或多个(匹配优先) | |
| + | + | 1个或多个(匹配优先) | |
| \?或\= | ? | 0个或1个(匹配优先),\?不能在 ? 命令(逆向查找)中使用 | |
| {n,m} | {n,m} | n个到m个(匹配优先) | |
| {n,} | {n,} | 最少n个(匹配优先) | |
| {,m} | {,m} | 最多m个(匹配优先) | |
| {n} | {n} | 恰好n个 | |
| {-n,m} | {n,m}? | n个到m个(忽略优先) | |
| {-} | *? | 0个或多个(忽略优先) | |
| {-1,} | +? | 1个或多个(忽略优先) | |
| {-,1} | ?? | 0个或1个(忽略优先) |
环视和固化分组
这个内容之前没有接触过,只是简单的摘抄下来,后面再进行研究了。
| vim | Perl | 意义 | |
|---|---|---|---|
| \@= | (?= | 顺序环视 | |
| \@! | (?! | 顺序否定环视 | |
| \@<= | (?<= | 逆序环视 | |
| \@<! | (?<! | 逆序否定环视 | |
| \@> | (?> | 固化分组 | |
| \%(atom) | (?: | 非捕获型括号 |
和perl稍有不同的是,vim中的环视和固化分组的模式的位置与perl不同。例如,查找紧跟在 foo 之后的 bar,perl将模式写在环视的括号内,而vim将模式写在环视的元字符之前。 Perl的写法
1
| |
vim的写法
1
| |