Enrico: Regulärer Ausdruck ist fehlerhaft

Beitrag lesen

Hallo,

ich möchte eine URL mit folgendem Aufbau über PHP prüfen:

http://www.unsereseite.de/ADMIN/PHP/Login.php?iWb5AplQxO1kODPKXYtrRhyLwcVZ680sznKmfqEedU2a7MvgGHBJ3o4SCT9IjFNucy

Der reguläre Ausdruck hat folgenden Aufbau:

  
if (preg_match("/^(http\:\/\/)?+(www\.)?+unsereseite\.de\/ADMIN\/PHP\/Login\.php\?[a-z0-9]{64}$/i", $a))  
{  
...  
}  

Und dieser Ausdruck validiert falsch und ich komme einfach nicht dahinter, warum.

  • ^-Zeichen: suche am Anfang des Strings beginnen
  • (http://)?+  "http://" muss nicht, kann aber höchstens einmal vorkommen
  • (www.)?+       "www."    muss nicht, kann aber höchstens einmal vorkommen
  • Der Rest bis zum Fragezeichen muss wie vorgegeben vorhanden sein
  • Nach dem Fragezeichen müssen 64 Zeichen folgen, die nur aus Groß- und Kleinbuchstaben sowie Ziffern bestehen dürfen
  • $-Zeichen kennzeichnet das Ende der Suche

Ich kann keine(n) Fehler entdecken.

Was habe ich falsch gemacht?

Vielen Dank für eure Hilfe und Gruß,
Enrico