2

正規表現が機能しない理由を理解するのに苦労しています。というフレーズを探していますが、次の@Test(groups = {"broken"})表現では見つかりません。

@Test\(groups = {"broken"}\)

ただし、この式では次の結果が得られます。

@Test\(.*groups = {"broken"}\)

なぜこうなった?最初の式が機能しない理由はわかりませんが、2 番目の式が機能する理由は理解できます。

4

2 に答える 2

4

リテラル テキストを検索する場合は\V、検索パターンの前に追加するだけです。次に、バックスラッシュだけが特別な意味を持ち、エスケープする必要があります:

/\V@Test(groups = {"broken"})

\他のほとんどの正規表現方言とは対照的に、多くの Vim アトムは非リテラルであるために接頭辞を付ける必要があります。\vVim のパターンを Perl のパターンに近づけるために、先頭に;を追加できます。次に、 (ご想像のとおり) キャプチャ グループ化を行い、リテラルの括弧に一致(...)するようにエスケープする必要があります。\(

于 2013-06-14T18:56:03.657 に答える