正規表現における演算子の順序: (..|.. ... ..|..)
正規表現では、 (..|.. ... ..|..) 内の式の優先順位は左から右です。 「勝利」に一致する最初の選択肢と、それ以降の選択肢は評価されません。この動作は、正規表現エンジンで一般的に使用される非決定性有限オートマトン (NFA) の特徴です。
左から右の評価
たとえば、式 ( aaa|bb|a) は、正規表現パターンでは「bb」が「a」の前に出現するため、文字列「bbac」の「bb」と一致します。代わりに Regex.Matches を使用した場合、「bb」と「a」の両方が一致します。
代替の順序
アンカーされていない代替グループ内では、選択肢の順序が重要です。たとえば、式 (a|aa|aaa) は、文字列「abbbccaa」の各「a」と一致します。
ただし、単語の境界を使用して式をアンカーする場合、選択肢の順序は無関係になります。たとえば、(.)a(.|$) は、選択肢 ".*" と "$."
RegexOptions.RightToLeft フラグに関する注意
次の点に注意することが重要です。 RegexOptions.RightToLeft フラグは、入力文字列がスキャンされる方向にのみ影響し、正規表現パターンが処理される順序には影響しません。以上が演算子の順序は正規表現のマッチングにどのように影響しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。