RegEx, wie kann ich einen Link auslesen?

Von: , Frage gestellt am Mi, 4. Jan 2006

Hallo,

text1 text2 text3

mit welchem regulären Ausdruck erhalte ich

1. den kompletten Link
text

2. die URL
index.htm

3. den Link-Text
text2

Vielen Dank.

Gruß, Christian

5 Antworten zu dieser Frage

  1. Antwort von nach 21 Stunden 0 hilfreich
    Re: RegEx, wie kann ich einen Link auslesen?

    hallo,

    lösung zu 1.:

    <a[^<>]*>[^<>]*</a>

    • Antwort von nach einem Tag 0 hilfreich
      Re^2: RegEx, wie kann ich einen Link auslesen?

      unter php:

      preg_match_all ("|<a href=(.*)>(.*)</a>|",
      'text1 text2 text3',
      $out, PREG_PATTERN_ORDER);
      print_r ($out);

      ansonsten hab ich grad nix zur Hand, womit ich reguläre Ausdrücke suchen kann

  2. Antwort von nach 3 Tagen 1 hilfreich
    Re: RegEx, wie kann ich einen Link auslesen?

    Hallo,

    text1 text2 text3

    mit welchem regulären Ausdruck erhalte ich

    1. den kompletten Link
    text
    '#<a [^>]*href="(.)*"[^>]*>(.*)</a>#'
    2. die URL
    index.htm
    das kannst du so nicht parsen. Wenn du's aus dem kompletten tag herauslesen möchtest, dann kannst du den obigen Ausdruck verwenden. Wenn du aber irgendwo im Quelltext eine absolute URL auslesen möchtest, dann hilft vielleicht folgendes weiter:

    '#http://(www.[-_a-zA-Z0-9/.~?&,]*)#'

    Aber das Thema URl ist ein wenig komplexer, hiermit wäre nur ein Bruchteil abgedeckt. Zum weiterlesen:
    http://de2.php.net/manual/en/function.preg-match.php...

    Ausserdem (Luft anhalten bitte):
    http://www.foad.org/~abigail/Perl/url3.regex
    und zur Erklärung:
    http://www.foad.org/~abigail/Perl/url2.html 3. den Link-Text
    text2
    wieder siehe oben! Wenn du mit php arbeitest und ein preg_match anwendest, dann wird $match[0] der komplette String sein (alles von Tag-Anfang zu Tag-Ende), $match[1] der Link und $match[2] der Linktext sein.

    Gruss, Omar Abo-Namous

    • Antwort von nach 3 Tagen 0 hilfreich
      Re^2: RegEx, wie kann ich einen Link auslesen?

      Hallo,

      text1 text2 text3

      mit welchem regulären Ausdruck erhalte ich

      1. den kompletten Link
      text
      '#<a [^>]*href="(.)*"[^>]*>(.*)</a>#'
      'Tschuldigung, das ist natürlich Quatsch, es müsste heissen:

      '#<a [^>]*href="([^\">]*)"[^>]*>(.*)</a>#'

      dann kann man das ein wenig verfeinern:

      '#<a [^>]*href="((http://)?(www.[-_a-zA-Z0-9/.~?&,]*))"[^>]*>(.*)</a>#'

      Gruss, Omar Abo-Namous

      • Antwort von nach 8 Tagen 0 hilfreich
        Re^3: RegEx, wie kann ich einen Link auslesen?

        Hallo Omar,

        Vielen Dank für deine Hilfe.

        hab jetzt ein paar Tage nciht rein geschaut und erst jetzt gesehen das noch jemand ne Antwort geschrieben hat.

        Gruß, Christian

        PS: Ich arbeite mit Cold Fusion

Keine passende Antwort gefunden? Jetzt eigene Frage stellen!