Regex macht zuviel
Andi
- php
Hallo,
ich weiß das Regexe hungrig sind da gibt es aber den ungreedy Tag U
aber er macht mir doch noch weiter.
Hier die Regex (Um Urls ein bischen zu checken):
=^(ftp|http|https){1,1}://[a-zA-Z0-9]*.[a-zA-Z]{2,3}=U
Grüße und Danke
Andi
Hallo,
ich weiß das Regexe hungrig sind da gibt es aber den ungreedy Tag U
aber er macht mir doch noch weiter.
Hier die Regex (Um Urls ein bischen zu checken):
=^(ftp|http|https){1,1}://[a-zA-Z0-9]*.[a-zA-Z]{2,3}=U
Grüße und Danke
Andi
Und was ist jetzt Deine Frage?
Dein Ausdruck ist aber nicht ganz so brauchbar, nimm mal sowas:
^(ftp|http|https)://[a-zA-Z0-9.]*.[a-zA-Z]{2,}$
Ist allerdings nur mal eben getippt und ungetestet, sollte aber die meisten URLs erschlagen. Erweitern kann man das noch auf Verzeichnisse, Dateien, Bindestrich etc.
Hi,
meine Frage ist wie kann ich machen, dass die Regex beim ersten Macth aufhört:
www.foo.bar -> match
www.foo.barwww.foo.bar -> kein match
Grüße
Andi
Hallo,
das wäre zu aufwendig alles zu checken dann öffne ich sie lieber mit fopen.
Grüße
Andi
hi,
meine Frage ist wie kann ich machen, dass die Regex beim ersten Macth aufhört:
www.foo.bar -> match
www.foo.barwww.foo.bar -> kein match
wieso, du willst doch laut eigener aussage URLs checken.
und unter der annahme, dass www.foo.bar ein gültiger hostname sei, .bar also eine gültige TLD - wieso sollte da www.foo.barwww.foo.bar kein gültiger hostname sein ...?
gruß,
wahsaga
Hi,
meine Frage ist wie kann ich machen, dass die Regex beim ersten Macth aufhört:
www.foo.bar -> match
www.foo.barwww.foo.bar -> kein matchGrüße
Andi
Wenn's nur das ist: Genau das kannst Du mit meinem Ausdruck machen. Du müßtest nur noch die Bindestriche einbauen.