正規表現内で、代替からの1つの代替に一致する場合、さらに代替が残っていても、そこで停止すると仮定します(代替の外側の正規表現には他のトークンはありません)。
1 つのダブル ワードを検索するこのパターン (例: this this
)
\b([a-z]+)((?:\s|<[^>]+>)+)(\1\b)
この主題を紹介すると、1 つの混乱があります。
パタンと一致します。
"<i>whatever<i> whatever"
\b([a-z]+)
マッチ
((?:<[^>]+>|\s)+)
1 つの TAG に続くので、2 番目の代替一致。
(\1\b)
最初の括弧で後方参照された同じ単語が続く場合、一致する必要があります。
(\1\b)
タグの後に「 」が続かず、空白が続く場合、なぜ一致するのですか。
交互に存在することを知っています\s
。
しかし、TAG マッチがオルタネーションを消費することは想定されていませんか?
\s
代替案がまだ生きているのはなぜですか?