Ein regex Ansatz einer Lambda innerhalb re.sub
anstelle eines Ersatz Bespannbild mit:
import re
s = """curl -X POST -H "Content-type: application/json" -d '{"group":"stash-adt_ooms-dev","users":['stack', 'overflow']}' "url" """
res = re.sub(r"\[.*?]", lambda x: x.group().replace("'", '"'), s)
print(res)
# => curl -X POST -H "Content-type: application/json" -d '{"group":"stash-adt_ooms-dev","users":["stack", "overflow"]}' "url"
Siehe Python demo
Die \[.*?]
regex entspricht einem wörtlichen [
, dann entspricht null oder mehr Zeichen außer einem Zeilenumbruch (Fügen Sie flags=re.DOTALL
zum re.sub
hinzu, wenn Sie den Teilstring über mehrere Zeilen hinweg anpassen möchten), so wenig wie möglich bis zum ersten ]
, der ebenfalls verbraucht wird.
Das Lambda nimmt die Spieldaten x
Objekt und ersetzt die '
"
mit nur innerhalb des Übereinstimmungswertes .group()
, das heißt innerhalb all [...]
Strings in der Eingabezeichenfolge.
In der Ausgabe nicht nur die ' '' s ersetzt durch '" ', die Werte chaged auch Haben Sie dies wollen –
Nr.? ... ich brauche genau wie im Ergebnis erwähnt – Springhills
Kannst du bitte helfen, es als Ergebnis – Springhills