Das Hauptproblem dabei ist, dass das:
(?=("|')?\d=|$)
Mittel „, gefolgt von einem der folgenden Eigenschaften:
"
plus eine Ziffer und =
'
plus eine Ziffer und =
- eine Ziffer und
=
- End-of-string
“. Sie werden bemerken, dass es nicht macht, geben Sie für whitespace zwischen dem "
oder '
und der Ziffer; so im Fall von 1="aa" 2=...
, ist die value
einfach nicht erlaubt, gefolgt von " 2=...
. Ähnlich macht es nicht machen Sie irgendeine Erlaubnis für "
oder '
plus Ende der Schnur.
So ist die minimale fix ist — ja zu ermöglichen, erfordern — einige Leerzeichen vor der Ziffer und die ("|')?
aus der Look-Ahead-Behauptung zu bewegen und in den Hauptteil des Regex:
("|')?(?=\s+\d=|$)
Geben:
(?<number>\d)=\s*("|')?\s*(?<value>.*?)("|')?(?=\s+\d=|$)
Während wir gerade dabei sind, wir auch vielleicht einige andere Optimierungen machen die Regex zu vereinfachen und die Anzahl der Fälle zu reduzieren, wo es WRO gehen ng:
(?<number>\d)=\s*(["']?)(?<value>.*?)\1(?=\s+\d=|$)
(. Weitere Bereinigung möglich sein kann, aber ich weiß nicht genug über Ihre Daten noch weitere Änderungen empfehlen)
Danke es ist richtig funktioniert Beim kopieren von sO, ist es auch Kopien eine neue Linie und so war es nicht richtig funktioniert Vielen Dank für Ihre Hilfe –
@AlexJ?....: Gern geschehen! – ruakh