交替オペレータ|
の有効範囲は何ですか?いくつかのケースでは、|
の左のものすべてが1つの選択肢であり、|
のすべてが第2の選択肢であるように見えます。なぜ代替手段は|
の直前と直後のキャプチャグループやトークンに限定されないのですか?RegEx交替範囲
私はRegExrでテストしていますが、私はJavaで正規表現を実行しています。
私は2つの短い正規表現があります。
(\d{3})\W+(SSN)
(太字で一致)
SSNx 123 SSN
(SSN)\W+(\d{3})
(太字で一致します。)
をSSN123 SSN
私はこのような正規表現組み合わせる場合:
(\d{3})\W+(SSN)|(SSN)\W+(\d{3})
を正規表現の一致(太字)
SSN 123 SSN
SSNx 123 SSN
なぜpaを追加する必要はありませんでしたか?このようなレシピは?
((\d{3})\W+(SSN))|((SSN)\W+(\d{3}))
私は、周囲のキャプチャグループ間でのみ交互に交代することを期待していました。 "SSN"または "SSN"。その場合、結果は次のようになります。
((\d{3})\W+(SSN)\W+(\d{3}))
一致しません。これは、スコープの問題ではありません