RegEx zurück 'href' - Attribut des link-tags nur?
Im Versuch, das Handwerk eine regex, die nur zurück <link>
tag hrefs
Warum funktioniert dieser regex return alle hrefs einschließlich der <a hrefs?
(?<=<link\s+.*?)href\s*=\s*[\'\"][^\'\"]+
<link rev="stylesheet" href="idlecore-aufgeräumt.css?T_2_5_0_228" media="screen"> <a href="anotherurl">Slash Kisten</a>
danke
Bitte formulieren Sie die Frage. Ich glaube nicht, dass jemand Ihre Frage zu verstehen, wie es steht.
InformationsquelleAutor Vince Panuccio | 2008-11-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
Entweder
oder
Der Hauptunterschied ist
[^<>]*?
statt.*?
. Dies ist, weil Sie nicht wollen, dass es weiterhin die Suche in anderen tags.InformationsquelleAutor Markus Jarderot
Vermeiden lookbehind für solche einfachen Fall, nur mit dem übereinstimmen, was Sie brauchen, und das zu erfassen, was Sie wollen.
Bekam ich gute Ergebnisse mit
<link\s+[^>]*(href\s*=\s*(['"]).*?\2)
im Regex Coach, mit s-und g-Optionen.InformationsquelleAutor PhiLho
bin ich ein wenig wackelig auf den back-Referenzen mich, so dass ich Links, die in es. Dieser regex obwohl:
...funktioniert in meinem Javascript-test.
InformationsquelleAutor nickf
arbeitet mit Expresso (ich denke, Expresso läuft auf die .NET-regex-engine). Könnte man noch verfeinern, dies ein bisschen mehr zu entsprechen, die Schließung
'
oder"
:Vielleicht ist dein regex-engine funktioniert nicht mit lookbehind-assertions. Ein workaround wäre
Match wird dann in der erfassten Gruppe 1.
InformationsquelleAutor Stefan Gehrig
Was regex Geschmack verwenden Sie? Perl, für einen, nicht unterstützt variable-Länge lookbehind. Wo, das ist eine option, die ich wählen würde (edited zur Umsetzung der sehr guten Idee aus MizardX):
als eine erste Annäherung. So ist die Wahl der Anführungszeichen (' oder ") abgestimmt werden.
Das gleiche für eine Sprache ohne Unterstützung (variable Länge) lookbehind:
\1 enthalten wird, die Ihr Spiel.
InformationsquelleAutor Tim Pietzcker