正規表現 '(\ba\b) \B\1\B' 情報

正規表現 '(\ba\b) \B\1\B' 情報

フォローアップです。これ質問。私はそれが新しい質問を正当化するのに十分に異なると思います。

私が理解したように、キャプチャグループはテキストのみをキャプチャします。つまり、(\ba\b)一致する文字列のみを保存する場合、a単語境界自体はテキストではないため含まれません。

これはパターンが(\ba\b) \B\1\B一致できるはずであると信じていますがa zaz(2番目の発生はa最終的に単語ではなく2つの境界の間で発生します)、そうではありません。

私は何を見逃していますか?

ベストアンサー1

zを逃した?

$ echo a zaz | grep -P '(\ba\b) \B\1\B'
- no output -
$ echo a zaz | grep -P '(\ba\b) z\B\1\Bz'
a zaz

\b括弧に余分な文字が含まれていないように、余分な\B文字も一致しません。したがって、正規表現には a の周辺の z に一致する項目はありません。

おすすめ記事