web-dev-qa-db-ja.com

Vimでの複数行の正規表現のサポート

複数の行にまたがって一致するための標準の正規表現構文は、次のように/ sを使用することです。

This is\nsome text
/This.*text/s

これは、たとえばPerlで機能しますが、Vimではサポートされていないようです。代わりに、もっと具体的にする必要があります。

/This[^\r\n]*[\r\n]*text/

これが必要な理由を見つけることができないので、vimヘルプの関連する部分を見逃したのではないかと考えています。

誰でもこの動作を何らかの方法で確認できますか?

106
Daniel

はい、Vimの正規表現ではPerlの//s修飾子は使用できません。 VimとPerlの正規表現の詳細およびその他の違いのリストについては、:h Perl-patternsを参照してください。

代わりに、\_.を使用できます。これは、「改行を含む任意の1文字に一致する」ことを意味します。それはあなたが持っているものより少し短いです。 :h /\_.を参照してください。

/This\_.*text/
165
Brian Carper