要旨
\zs
と\ze
を使うと検索文字列の内一部の文字列だけをマッチさせることが出来る。
このキーワードを使うとVim置換で出来ることが格段に広がる。
課題
「なまたまご」の文字列から「た」の前にある「ま」だけを検索する。
対応方法
/\zsま\zeた
解説
検索時にマッチしたい個所を\zs
と\ze
で囲むと、その個所だけがマッチするようになります。\zs
:マッチ開始\ze
:マッチ終了
実践的な使い方
vimで置換する場合に利用すると
置換で出来ることが一気に増えます。
例題
以下の文字列から、qの前にあるaだけをSに変換する
edrfqyhujiolp
swdefraqwsedr
ftgaqwsedrfaq
wseaqwsedqaws
edrqawsedravy
↓:%s/\zsa\zeq/S/g
↓
edrfqyhujiolp
swdefrSqwsedr
ftgSqwsedrfSq
wseSqwsedqaws
edrqawsedravy