gudn tach!
- Warum scheitert meine regexp nicht an "mailto:" und "http:"?
wegen dem fragezeichen im "? davor, denke ich.
Nein, das Fragezeichen sagt nur, dass das " optional ist, also auch fehlen kann.ja, das weiss ich. ich dachte jedoch, dass eben gerade diese optionalitaet in konflikt geraten koennte mit dem zero-width negative look-ahead-muster (?!...). vielleicht kann da jemand etwas zu sagen, der's genau weiss.
hab mir noch mal gedanken darueber gemacht:
angenommen wir durch suchen den string
$html_body='<a href="http://www.bierdatenbank.de/index.php">bdb</a>';
dann findet
/((?i)href=)"?(?!mailto:|http:)([^>" ]*)"?/
folgendes:
regexp | gefunden
-------------------+-----------------------------------------
((?i)href=) | href=
"? | (kein ")
(?!mailto:|http:) | (also auch kein mailto: oder http:)
([^>" ]*) | (nix, da " naechstes zeichen)
"? | " (weil gierig)
also insg. wir bloss href=" gefunden.
deswegen besser vorher, wie im anderen ast bereits erlaeutert, die urls mit " vorne und hinten versehen und dann:
/((?i)href=")(?!mailto:|http:)([^>" ]*")/
prost
seth