フォローアップです。これ質問。私はそれが新しい質問を正当化するのに十分に異なると思います。
私が理解したように、キャプチャグループはテキストのみをキャプチャします。つまり、(\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 に一致する項目はありません。