1. ホーム
  2. regex

[解決済み] Vim における複数行の正規表現のサポート

2022-07-31 05:28:33

質問

複数行にまたがるマッチングのための標準的な正規表現の構文は、次のように /s を使用することだと思います。

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

これは例えばPerlでは動作しますが、Vimではサポートされていないようです。その代わり、もっと具体的なことを言わなければなりません。

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

なぜそうしなければならないかという理由が見つからないので、おそらくvimのヘルプにある関連する部分を見逃しただけだと思います。

どなたか、この動作を一方的に確認することはできますか?

どのように解決するのですか?

はい、Perl の //s 修飾子は Vim の正規表現では使えません。 参照 :h perl-patterns を参照してください。また、VimとPerlの正規表現の違いも参照してください。

代わりに \_. これは "改行を含む任意の一文字にマッチする" という意味です。 これは、改行を含む任意の1文字にマッチすることを意味します。 以下は :h /\_. .

/This\_.*text/