Nina2: regex: Link Extractor

Hi,

habe nun einen funktionierenden regex zu stande gebracht:
$regex="/<a href="(.*?)".*?>(.*)</a>/i";
Was aber noch fehlt, ist der Fall, dass jemand statt href="" evt. href='' oder href=http... schreibt.
(Wie) könnte man das auch noch berücksichtigen?
Dieses Problem muss doch bekannt sein wie ein bunter Hund; demnach wunderts mich, dass ich nirgendwo eine Ideallösung für das Problem finden kann :(
Überall nur irgendwelche anfälligen Ausdrücke und meiner wahrscheinlich auch :/

Schönen Abend allerseits

  1. habe nun einen funktionierenden regex zu stande gebracht:
    $regex="/<a href="(.*?)".*?>(.*)</a>/i";
    Was aber noch fehlt, ist der Fall, dass jemand statt href="" evt. href='' oder href=http... schreibt.

    oder dass jemand <a class="blah" href="#">blah</a> schreibt, oder href='" oder   anderes ungültiges html

    du wirst niemals alles abdecken
    aber " durch ("|') zu ersetzen könnte zb helfen

  2. gudn tach!

    habe nun einen funktionierenden regex zu stande gebracht:
    $regex="/<a href="(.*?)".*?>(.*)</a>/i";
    Was aber noch fehlt, ist der Fall, dass jemand statt href="" evt. href='' oder href=http... schreibt.
    (Wie) könnte man das auch noch berücksichtigen?

    in perlsyntax sowas:
      /<a href=(["']?)([^ ]*)\1.*?>(.*)</a>/i

    in php, was du vermutlich benutzt, muesstest du halt noch die string-delimiter maskieren. erklaerung bekommst du im perl- oder php-manual unter dem stichwort "backreferences".

    beachte aber, dass damit z.b. in href=... kein leerzeichen enthalten sein darf.

    prost
    seth