regex: Link Extractor
Nina2
- sonstiges
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
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
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