捕獲グループの文法以外に、他の(?...)文法はすべてキャプチャグループの検証ではありません。

1257 ワード

正規表現技術ドキュメントでは、次の内容が見られます。
「他に説明が必要な点は、(Expression)と(?)name>>Expression)文法以外に、他の(?...)文法はすべてキャプチャグループではありません。」
この内容は分かりやすいですが、疑問なのは、この文章の作者がもう一つの関連正則の技術文章の中で、その中の一つのこのような実例は私を一つの目に迷わせました。
テキストの内容

<td>a</td><td>b</td> 
正規表現

(?is)<td>(?:(?!</td>).)*</td> 
上の正規表現のコードに注意してください。td>」.「強制非キャプチャグループ」を実行します。メールで彼に教えます。このように書いてもいいです。is)((?!)*
二日間まだ彼の返事がないので、振り返って彼のコードを調べてみます。最初は重点を置いています。td>」という括弧はキャプチャグループとしてカウントされません。上の技術文章のコードを見てから反応しました。彼はターゲットではありませんtd>)強制的に捕獲グループではなく、(?!).強制的に非捕獲グループにして、次のテストを行いました。
テキストの内容

<td>a</td><td>a</td>
正規表現

<td>((?!</td>).)*</td><td>(\1)*</td>
マッチング結果

<td>a</td><td>a</td>
これは証明です。td>「.」は強制的に非捕獲グループとして行われ、これは捕獲されますが、この捕獲は必要ありません。
以下、テストしています。(Expression)と(?)name>Expression)文法以外に、他のはループなど、捕獲グループとは言えません。
テキストの内容

<td>a</td><td>a</td> 
正規表現

<td>((?!</td>).)*</td><td>(\2.)*</td>
マッチング結果:不一致
異論があれば、検討を歓迎します。