viの正規表現が他と異なり上手くいかない
今回やりたかったのはviでの正規表現で、普段使っているPythonの正規表現の書き方と大分違うということで苦戦しました。
今回やりたかった正規表現
<span>hogehoge1</span> abc <span>hogehoge2</span>
所謂、perl等での正規表現だと以下のような感じにすると、複数行マッチさせることが出来ます。
<span>((?!<span>).)*?<\/span>
これをviの正規表現だとどう書くか
vimの正規表現の書き方は独特で、perl等のものとは大分違うものでした。。
vimの場合は、 \_.
が改行を含む任意の文字列を表すのだそうです。
そして、最短一致の書き方は \{-}
で、これらを組み合わせると以下のような感じになります。
<span>\_.\{-}<\/span>
これで、複数行マッチ出来て、vimでの置換等が凄い捗るようになりました!
普段あまりviを使っていないので気付かない部分も大きいですが、正規表現の書き方も変わるとなるとなかなか大変ですね。