vimでnon-greedyなマッチを行うために正規表現を調べたのでメモ
non-greedyなマッチを使いたい場合のusecase
以下の行でクォーテーション毎にそれぞれマッチしたい場合
'hoge', 'fuga'
アスタリスクを使って書くと行頭から行末まで全体にマッチしてしまう
# greedy /\v'.*' => match "'hoge', 'fuga'" # non-greedy /\v'.{-}' => match "'hoge'" and "'fuga'" separately
{}
は繰り返し回数を指定する場合の正規表現の書き方だが、その頭にハイフンを付けることでnon-greedyという意味になる
例えば{-2,5}
とすれば2~5回の繰り返し(non-greedy)を表せる
ちなみに\v
を置くことでalphabet, number, underscore以外の文字を特殊な意味で使う場合にescapeする必要がなくなる
\Vとすれば逆にすべての文字をescapeなしで文字通りのまま扱える
cf. :h magic

- 作者: Drew Neil,新丈径
- 出版社/メーカー: アスキー・メディアワークス
- 発売日: 2013/08/29
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (15件) を見る