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
|
|