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