vim正则表达式环视使用

vim正则表达式环视使用
环视,或者说正向预查,反向预查

vim规定正则表达式的元字符必须用反斜杠进行转义才行
perl将模式写在环视的括号内,而vim将模式写在环视的元字符之前
# Perl的写法/(?<=foo)bar/
# vim的写法/\(foo\)\@<=bar
vim Perl  意义
\@=  (?=   顺序环视
\@!  (?!   顺序否定环视
\@<= (?<=  逆序环视
\@<! (?<!  逆序否定环视
\%(atom\) (?: 非捕获型括号(此分组不捕获,可以理解为不算在分组信息中)

以下为在vim底行模式示例
查找small,要求后面是cat字符串     /small\(cat\)\@=
查找small,要求后面不能是cat字符串 /small\(cat\)\@!
查找cat,要求前面是small字符串     /\(small\)\@<=cat
查找cat,要求前面不能是small字符串 /\(small\)\@<!cat

如将单词后面的空格替换为_命令如下 :%s/\(\w\)\@<= /_/gc
查找单词后面的空格和下一个字符 /\(\w\)\@<= \w

%(atom) 非捕获型括号 意思是,此分组不捕获,不会将此括号内的表达式记录 :%s/\%\(cat\)_\(lili\)/1/gc

猜你喜欢

转载自blog.csdn.net/halazi100/article/details/105578082