# Regex Url-Format Prüfung



## DelphiDell (12. Februar 2006)

Hallo ich habe das REGEX Tutorial von hier durch gemacht, und habe jetzt habe ich versucht einen Url Teststring zu machen, funktioniert aber nicht, wass ist an meiner überlegunge falsch 


```
preg_match(%^(www.)[a-zA-Z0-9](.[a-z])$%,$str);
```


----------



## Gumbo (12. Februar 2006)

Die Syntax eines URL ist weitaus komplexer als du glaubst: Regex for URLs


----------



## DelphiDell (12. Februar 2006)

ist mier klar, aber ich möchte nur wissen wiso dies nicht funktioniert zb.
http://www.googel.ch , sollte doch valid sein oder 
Viso wird denn immer false zurück gegeben.


----------



## Gumbo (12. Februar 2006)

Spontan fällt mir nur auf, dass der vermeintliche Ausdruck nicht als Zeichenkette deklariert ist.


----------



## DelphiDell (12. Februar 2006)

Hi, ich habe es soweit geschafft, nun ist einfach ein neues problem aufgetreten.


```
$string = preg_replace('%(www.|http://|http://www.)([a-zA-Z0-9-.]{3,50})(.[a-z]{2,4})%s','<a href="http://www.$2$3">http://www.$2$3</href>',$string);
```

wenn strig = Ich habe dass Resultat auf http://www.googel.ch gefunden.    ist

wird in etwa folgendes ausgegeben 


```
<a href="http://www.googel.ch gefunden.">http://www.googel.ch gefunden. </a>
```


----------



## Gumbo (12. Februar 2006)

Du musst wissen, daas das Punkt-Zeichen eine besondere Bedeutung bei Regulären Ausdrücken hat. Wenn du explizit einen Punkt referenzieren möchtest, musst du die Sonderfunktion des Zeichens durch ein vorangestgelltes Fluchtzeichen aufheben.


----------



## DelphiDell (12. Februar 2006)

Hat keine Auswirkung, passiert immernoch dass selbe  



```
$string = preg_replace('%(www.|http://|http://www.)([a-zA-Z0-9-\.]{3,50})(.[a-z]{2,4})%s','<a href="http://www.$2$3">http://www.$2$3</a>',$string);
```


----------



## DelphiDell (12. Februar 2006)

Danke jetzt funktioniert es wunderbar.


----------



## Gumbo (12. Februar 2006)

Inerhalb von Zeichenklassen müssen nur die Zeichen ^, -, ] und \ geflüchtet werden.


----------

