erhalten Wenn Sie beide Teile mit dem gleichen Teilmuster sind passend (wie \w+
), du bist kein Glück. Wenn die Untermuster jedoch unterschiedlich sind, haben Sie einige Optionen, von denen keines sehr hübsch ist. Hier ist ein regulärer Ausdruck, der ein bedingtes Konstrukt verwendet in beliebiger Reihenfolge die src
und type
Attribute eines HTML-Script-Elements entsprechen:
\b(?(?=src=)
src="([^"]*)"\s+type="([^"]*)"|
type="([^"]*)"\s+src="([^"]*)"
)
(HAFTUNGSAUSSCHLUSS: Diese Regex macht viele unrealistischen Annahmen, Leiter unter ihnen, dass beiden Attribute vorhanden sein und dass sie dann aneinander angrenzen. ich verwende es nur um die Technik zu veranschaulichen.)
Wenn das src
Attribut wird zunächst die src
und type
Werte werden jeweils in den ersten und zweiten Gruppen erfaßt werden. Ansonsten erscheinen sie in der vierten und dritten Gruppe. Benannte Gruppen würden es einfacher machen, die Dinge im Auge zu behalten, besonders wenn sie denselben Namen an mehr als einem Ort verwenden könnten, wie es bei .NET-Regexen möglich ist. Unglücklicherweise verlangt PCRE, dass jede benannte Gruppe einen eindeutigen Namen hat, was zu schlecht ist; das ist eine sehr nette Eigenschaft.
Können Sie ein paar Beispiele geben? – DrAl