Regex um den Domainteil zu extrahieren gesucht
Jürgen Herz
- php
0 wahsaga0 annA0 MudGuard0 Jürgen Herz0 MudGuard
Hallo,
ich suche einen Regulären Ausdruck um domain.tld aus beliebigen URL und Mailadressen zu extrahieren. Also beispielsweise "teamone.de" aus "forum.de.selfhtml.org" aber auch aus "mail@selfhtml.teamone.de" und aus "teamone.de".
Ich nutze PHP, aber das ist ja für den regex egal.
Momentan habe ich
preg_match("/([^.]+.[^.]+)$/", $address, $matches);
und das funktioniert auch. Aber mir kommt's zu aufwendig vor, geht das nicht auch kürzer?
Ich würde übrigens gerne im Forum nach der Lösung suchen. Nur ist das nahezu unmöglich - wann immer ich es versuche, heißt es "der Server ist zur Zeit ausgelastet".
Ciao,
Jürgen
hi,
ich suche einen Regulären Ausdruck um domain.tld aus beliebigen URL und Mailadressen zu extrahieren. Also beispielsweise "teamone.de" aus "forum.de.selfhtml.org" aber auch aus "mail@selfhtml.teamone.de" und aus "teamone.de".
kommst du mit http://www.php.net/manual/de/function.parse-url.php nicht einfacher ans ziel?
(bei URLs wohl auf jeden fall, bei emailadressen weiss ich nicht, ob das ding die so frisst - ansonsten splitte vorher noch am @-zeichen den string auf.)
gruss,
wahsaga
kommst du mit http://www.php.net/manual/de/function.parse-url.php nicht einfacher ans ziel?
Nein. parse_url() gibt den gesamten host-Teil zurück. Ich will aber nur domainnamen.tld.
Jürgen
Hallo Jürgen,
bei einigen Suchmaschinen kann man die Suche auf Seiten beschränken
zum Beispiel bei google:
"Domain-Einschränkung
Manche Wörter, denen eine Doppelpunkt folgt, haben für Google eine spezielle Bedeutung. Eines dieser Wörter ist der "site:"-Operator. Verwenden Sie die "site:Beispieldomein.de"-Syntax, um auf einer bestimmten Domain oder einer bestimmten Website zu suchen.
" Quelle: http://www.google.de/intl/de/help/refinesearch.html
Beispiel: domainnamen php site:forum.de.selfhtml.org
Ist sicherlich nicht so komfortabel, aber es hilft ab und an
Viele Grüße
annA
Hi,
ich suche einen Regulären Ausdruck um domain.tld aus beliebigen URL und Mailadressen zu extrahieren. Also beispielsweise "teamone.de" aus "forum.de.selfhtml.org" aber auch aus "mail@selfhtml.teamone.de" und aus "teamone.de".
Du willst also z.B.
Ist das wirklich das, was Du willst?
cu,
Andreas
Du willst also z.B.
- aus www.example.co.uk das co.uk?
- aus www.example.de.vu das de.vu?
...Ist das wirklich das, was Du willst?
Ja, genau das.
Allerdings auch aus co.uk und de.vu, diese Einschränkung hatte mir schon zu schaffen gemacht.
Jürgen
Hi,
Du willst also z.B.
- aus www.example.co.uk das co.uk?
- aus www.example.de.vu das de.vu?
...Ist das wirklich das, was Du willst?
Ja, genau das.
Allerdings auch aus co.uk und de.vu, diese Einschränkung hatte mir schon zu schaffen gemacht.
Also was jetzt? Wenn Du aus www.example.co.uk wirklich nur das co.uk haben willst (was Du mit "Ja, genau das" ausdrückst, wo ist dann die Einschränkung?
Willst Du dort etwa doch example.co.uk?
Wenn das so wäre, müßtest Du eine Liste der Second-Level-Domains anlegen, bei denen die Third-Level-Domain das ist, was Du haben willst.
Dann müßtest Du erst gucken, ob Dein Hostname einer dieser Second-Level-Domains angehört und falls ja, die Third-Level-Domain mitnehmen, ansonsten nur die Second-Level-Domain.
Vielleicht gibt es ja auch eine einfachere Lösung, aber dazu müßtest Du den Zweck der ganzen Aktion verraten.
cu,
Andreas
Also was jetzt? Wenn Du aus www.example.co.uk wirklich nur das co.uk haben willst (was Du mit "Ja, genau das" ausdrückst, wo ist dann die Einschränkung?
Willst Du dort etwa doch example.co.uk?
Nein, immer nur die letzten zwei "Teile". Auch dann, wenn die Source nur aus den beiden besteht. Das hätte ich vielleicht weglassen sollen und niemand wäre verwirrt worden, Entschuldigung.
Jürgen