正規表現が機能しない理由を理解するのに苦労しています。というフレーズを探していますが、次の@Test(groups = {"broken"})
表現では見つかりません。
@Test\(groups = {"broken"}\)
ただし、この式では次の結果が得られます。
@Test\(.*groups = {"broken"}\)
なぜこうなった?最初の式が機能しない理由はわかりませんが、2 番目の式が機能する理由は理解できます。
リテラル テキストを検索する場合は\V
、検索パターンの前に追加するだけです。次に、バックスラッシュだけが特別な意味を持ち、エスケープする必要があります:
/\V@Test(groups = {"broken"})
\
他のほとんどの正規表現方言とは対照的に、多くの Vim アトムは非リテラルであるために接頭辞を付ける必要があります。\v
Vim のパターンを Perl のパターンに近づけるために、先頭に;を追加できます。次に、 (ご想像のとおり) キャプチャ グループ化を行い、リテラルの括弧に一致(...)
するようにエスケープする必要があります。\(