phpbar.de logo

Mailinglisten-Archive

[php] RegX

[php] RegX

Aron Schlesinger aron at viplocations.de
Mon Okt 17 17:20:19 CEST 2005


Hallo Thomas,

Am 14.10.2005 um 15:27 schrieb thomas.hausheer at bluewin.ch:
> bins nochmals mit einem Problem:
>
> preg_replace('°[a-zA-Z0-9]+\.[a-zA-Z0-9]*@[a-zA-Z0-9]+\.([a-zA-Z] 
> {2,3})
> °','<a href="mailto:$0">$0</a>', $STRING);
>
> Ersetzt zwar anstandslos die eingegebenen E-Mail-Adresse aber wenn's
> zwei oder mehr im Text sind, wird nur die Erste ersetzt.

Auch wenn das Archiv voll sein sollte von dem Thema, noch par
Kleinigkeiten dazu:

Du kannst mit dem Modifier `i`, wie schon geschrieben wurde,
Groß-Kleinschreibung ignorieren, dann bleibt nur noch [a-z0-9].

Wenn Du mehrere Ersetzen willst über mehrere Zeilen hilft dir der
Modifier `s`, auch dies wurde ja schon geschrieben.

Dann aus alter Zeit ein viele kursirrender Fehle im Internet ist:
[a-zA-Z]{2,3} Wir haben mittlerweile auch Top-Level Domains die bis zu
4 Zeichen lang sind. Wie zum Bleistift .info

In einer Domain kann auch ein `-` vorkommen.

Und es gibt E-Mail Adressen die auch Subdomains beinhalten.

Daraus ergibt sich dann sehr vereinfacht aber für den allgemein gebrauch
vielleicht reichend:

/[a-z0-9]+(\.[a-z0-9\-\.]+)*@([a-z0-9\-]+\.)+[a-z]{2,4}/is


Gruß
   Aron

PS.: Nicht berücksichtigt sind hier Umlaute in der Domain, da sträuben
      sich bei mir einfach die Nackenhaare ;)


php::bar PHP Wiki   -   Listenarchive