Wie unterteile ich eine Gruppe mit re.sub
?re-Gruppenwert
Ich will es 3
mit einem anderen Wert
Aktuelle außer Kraft zu setzen:
XYZ.Value = 3
;Nachher:
XYZ.Value = 5
;
Im Moment sieht mein Unter wie folgt aus:
name = XYZ
value = 5
content = XYZ.Value = 5
re.sub(r'(%s\.Value\s*=\s*)([^;]+)' %name, r'\1 ' + value, content)
Dies funktioniert nicht, da sie nach dem Überschreiben der Wert ' '
das Hinzufügen einer zusätzlichen Leerzeichen hält:
XYZ.Value = 5;
< --- 2 Leerzeichen anstelle von 1
Ich habe auch versucht \g<2>
re.sub(r'(%s\.Value\s*=\s*)([^;]+)' %name, r'\1\g<2>' + value, content)
Gruppierung unter Verwendung Aber dann hält sie dann auf dem bestehenden Wert hinzufügen, ohne es überschreiben:
Ausgang:
XYZ.Value = 3
Vielleicht 're.sub (r '(% s \ .Value \ s * = \ s *) ([^;] +) '% name, r' \ g <1> '+ Wert, Inhalt' wird es tun? Sie fangen bereits alle Leerzeichen vor '3' in Gruppe 1 ein. –