Ich habe immer geschrieben reguläre Ausdrücke wie dieseRegex: Ist Faul schlimmer?
<A HREF="([^"]*)" TARGET="_blank">([^<]*)</A>
aber ich gerade gelernt, diesen lazy thing und dass ich es wie folgt diesen zweiten Ansatz unter Verwendung eines beliebigen Nachteil
<A HREF="(.*?)" TARGET="_blank">(.*?)</A>
ist es schreiben kann? Die Regex ist definitiv kompakter (sogar SO parst es besser).
Bearbeiten: Es gibt zwei beste Antworten hier, die zwei wichtige Unterschiede zwischen den Ausdrücken zeigen. ysths Antwort zeigt auf eine Schwäche im nicht-gierigen/faulen, bei der der Hyperlink selbst möglicherweise andere Attribute des A-Tags enthalten könnte (definitiv nicht gut). Rob Kennedy weist auf eine Schwäche des gierigen Beispiels hin, nämlich dass Ankertexte keine anderen Tags enthalten können (definitiv nicht in Ordnung, weil sie auch nicht den ganzen Ankertext erfassen würden) ... also ist die Antwort, dass reguläre Ausdrücke das sind, was sie sind sind, faule und nicht faule Lösungen, die die gleichen scheinen, sind wahrscheinlich nicht semantisch gleichwertig.
Bearbeiten: Dritte beste Antwort ist von Alan M über die relative Geschwindigkeit der Ausdrücke. Zur Zeit werde ich seine beste Antwort markieren, damit die Leute ihm mehr Punkte geben :)
LOL! Danke für den Schub. –
Sicher, aber wenn die Frage ein wenig älter wird, liebt es offenbar niemand mehr. –
Wenn Sie die akzeptierte Antwort ändern können, zögern Sie nicht, dies zu tun. Meine Antwort beantwortete die Frage nicht wirklich, sie ging nur auf die anderen Antworten ein. –