Ich bin sehr neu in Python, in der Tat ist dies mein erstes Skript.Python re() Seltsamkeit
Ich habe Probleme mit Pythons regulären Ausdrücken. Insbesondere re.sub()
Ich habe den folgenden Code:
variableTest = "192"
test = re.sub(r'(\$\{\d{1,2}\:)example.com(\})', r'\1' + variableTest + r'\2', searchString, re.M)
Damit Ich versuche, so etwas wie host": "${9:example.com}"
innerhalb searchString
und ersetzen example.com
mit einem Servernamen oder die IP-Adresse übereinstimmen.
Wenn variableTest
eine IP enthält, schlägt sie fehl. Ich erhalte die folgende Fehlermeldung: sre_constants.error: invalid group reference
ich es mit variableTest
gleich "127.0.0.1" getestet habe, "1", "192", "192.168". "127.0.0.1" funktioniert, der Rest nicht. Wenn ich die anderen mit einem Buchstaben vorstelle, funktioniert es auch.
variableTest
ist ein String - verified mit type(variableTest)
ich total verloren bin, warum dies ist.
Wenn ich r'\1'
in der Ersatzzeichenfolge entfernen, funktioniert es auch. r'\1'
enthält ${\d}:
, mit \d
eine Zahl zwischen 1 und 999.
Jede Hilfe wird sehr geschätzt!
Bitte beachten Sie, dass der Beitrag von nneonneo die tatsächliche Antwort auf Ihr Problem liefert, PurityLake's Bemerkung über Ihren Befehlsaufruf ist aber auch wahr: Sie setzen das optionale Argument 'count' mit dem Flag' re.M'. – cooltea