(Hallo|Hi(ho)|Mahlzeit) Spike,
Ich habe 3 Zeichenketten
ZeichenketteA ZeichenketteB ZeichenketteC
Nun muß ich mit regex folgendes abfragen:
Es soll entweder ZeichenketteA oder ZeichenketteB UND ZeichenketteC vorkommen
Für nicht exklusives ODER wäre das einfach:
/(ZeichenketteA|ZeichenketteB.*?ZeichenketteC|ZeichenketteC.*?ZeichenketteB)/s
A | (B & C)
Falls dein "entweder" aber auf ein exklusives ODER hindeutet:
/\A.*?(ZeichenketteA|ZeichenketteB.*?ZeichenketteC|ZeichenketteC.*?ZeichenketteB).*\z/s
A XOR (B & C)
Und falls du andere Vorrangregeln in der booleschen Logik hast als ich
(worauf dein großgeschriebenes UND hindeuten könnte):
/(ZeichenketteA.*?ZeichenketteC|ZeichenketteC.*?ZeichenketteA|ZeichenketteB.*?ZeichenketteC|ZeichenketteC.*?ZeichenketteB)/s
(A | B) & C
Und letzteres mit Exklusivem-Entweder-ODER:
/\A.*?(ZeichenketteA.*?ZeichenketteC|ZeichenketteC.*?ZeichenketteA|ZeichenketteB.*?ZeichenketteC|ZeichenketteC.*?ZeichenketteB).*\z/s
(A XOR B) & C
Ich hoffe mal, das waren jetzt alle (vernünftigen) Interpretationsmöglichkeiten. ;-)
MffG
EisFuX