オプションの非キャプチャ グループは冗長ですか?
次の正規表現です:
(?:wo)?men
次の正規表現と意味的に同等ですか?
(wo)?men
あなたの(?:wo)?men
と(wo)?men
は意味的には同等ですが、技術的には異なります。つまり、最初は非キャプチャ グループを使用し、もう 1 つはキャプチャ グループを使用しています。したがって、問題は、キャプチャ グループがあるのに、なぜ非キャプチャ グループを使用するのかということです。
非キャプチャ グループが役立つ場合があります。
また、マッチをよりクリーンにするだけです:
非キャプチャ グループを使用して、組織化またはグループ化の利点を保持できますが、キャプチャのオーバーヘッドはありません。
既存の正規表現をリファクタリングしてキャプチャ グループを非キャプチャ グループに変換することは、コードを台無しにしたり、多大な労力を必要とする可能性があるため、良い考えではないようです。