Jürgen Herz: Regex um den Domainteil zu extrahieren gesucht

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

  1. 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

    1. 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

  2. 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

  3. 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.

    • aus www.example.co.uk das co.uk?
    • aus www.example.de.vu das de.vu?
      ...

    Ist das wirklich das, was Du willst?

    cu,
    Andreas

    --
    Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
    http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/
    1. 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

      1. 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

        --
        Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
        http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/
        1. 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