それらの文字が先読みアサーションのすぐ後に続かない場合、1 つ以上の文字が存在する/存在しないかどうかを確認するために先読みを使用することは可能ですか?
たとえば
、次のような正規表現が与えられた場合:
([abc])([def])([ghi])
たとえば、最初のグループに 'a' があった場合、3 番目のグループの 'i' のみを一致として許可することはできますか?
それらの文字が先読みアサーションのすぐ後に続かない場合、1 つ以上の文字が存在する/存在しないかどうかを確認するために先読みを使用することは可能ですか?
たとえば
、次のような正規表現が与えられた場合:
([abc])([def])([ghi])
たとえば、最初のグループに 'a' があった場合、3 番目のグループの 'i' のみを一致として許可することはできますか?
後読みアサーションを使用できます (正規表現エンジンでサポートされていない JavaScript をターゲットにしている場合を除きます)。
([abc])([def])([gh]|(?<=a.)i)
OR演算を使いたい場合はこんな|
感じ
(asd)|(zxc)|(qwe)
条件付きパターンを使用できます。
これを試して :
/((a)|(b|c))([def])(?(2)i|[gh])/
(PCREでテスト済み)