Ich bin die folgende RegEx mit einem String in Schlüssel und Werte zu teilen:RegEx Probleme mit doppelten Anführungszeichen
String:
type="post" id="1" text="Blog Post"
Regex:
/(?<name>\\S+)=["']?(?P<value>(?:.(?!["']?\\s+(?:\\S+)=|[>"']))+.)["']?/u
Das funktioniert, solange jeder Wert mindestens 2 Zeichen hat. I der Wert ist nur 1 Zeichen lang (wie ID hier) Ich bekomme ein Angebot nach der Nummer. So für dieses Beispiel mit dem ID bekomme ich folgende Ausgabe:
type => post
id => 1"
text => Blog Post
Ive keine Ahnung, wo in der RegEx mein Fehler ist. Vielleicht kann mir jemand einen Hinweis geben?
Vielen Dank!
Sieht ein bisschen so aus, als würden Sie Markup mit Regex parsen, was nie eine gute Idee ist. Sie benötigen einen DOM-Parser, um Markup zu konsumieren. –
Nein, ich analysiere kein DOM. Ich suche nach Shortcodes (wie in Wordpress) in Text, um es zu verarbeiten. – Michael