yo, habe ein kleines Problem bzgl. reg. Ausdrücken:
Ich möchte einen String per preg_match() auf seine Gültigkeit untersuchen.
Zum einen soll der String keine aufeinanderfolgenden Unterstriche ("_") enthalten, zum anderen soll ein weiterer Ausdruck darauf angewendet werden, nichts kompliziertes also:
Das Skript funktioniert auch wunderbar, aber nun meine Frage: Benötigt man für so eine Aufgabe wirklich zwei reg. Ausdrücke?
Mich würde mal _aus Prinzip_ interessieren, ob man das nicht auch mit einem konditionalen Ausdruck machen könnte, der $pattern1 und $pattern2 zusammenfasst:
Wie müsste dann die Assertion "WENN KEIN PATTERN1" in o.g. $pattern aussehen? Ich hab schon viel rumprobiert, aber bisher leider keine Lösung gefunden! Danke für eure Tipps!
Ich möchte einen String per preg_match() auf seine Gültigkeit untersuchen.
Zum einen soll der String keine aufeinanderfolgenden Unterstriche ("_") enthalten, zum anderen soll ein weiterer Ausdruck darauf angewendet werden, nichts kompliziertes also:
PHP:
$string = "nur_ein__test";
$pattern1 = "/_{2}/"; // prüft auf doppelte Unterstriche
$pattern2 = "/^[a-z][a-z0-9_]{1,31}$/"; // prüft auf weitere Gültigkeit
if(!preg_match($pattern1,$string) && preg_match($pattern2,$string))
print "String ist gültig!";
else
print "string ist ungültig!";
// Würde in diesem Fall "String ist ungültig!" ausgeben
Mich würde mal _aus Prinzip_ interessieren, ob man das nicht auch mit einem konditionalen Ausdruck machen könnte, der $pattern1 und $pattern2 zusammenfasst:
PHP:
$string = "nur_ein__test";
$pattern = "/^(?(WENN_KEIN_PATTERN1)DANN_PATTERN2)$/"; /* prüft auf doppelte Unterstriche und weitere Gültigkeit; WENN keine doppelten Unterstriche, DANN prüfen auf weitere Gültigkeit */
if(preg_match($pattern,$string))
print "String ist gültig!";
else
print "string ist ungültig!";
// Müsste in diesem Fall "String ist ungültig!" ausgeben