Python - escaping von double-quotes mit string.ersetzen
Wie Ersetze ich " mit \" in einem python-string?
Ich habe einen string mit doppelten Anführungszeichen:
s = 'a string with "double" quotes'
Ich will zu entkommen, die Anführungszeichen mit einem backslash.
Folgt funktioniert nicht ganz, es entweicht mit zwei umgekehrten Schrägstrichen:
s.replace('"', '\\"')
'a string with \\"double\\" quotes'
Drucken die Ausgabe dieses Strings zeigt, was ich will.
Aber ich will nicht nur zum drucken die richtige Zeichenfolge, möchte ich es in einer Variablen gespeichert.
Kann mir jemand helfen mit der richtigen magischen regulären Ausdruck?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den string ist richtig. Aber
repr
verwenden backslash-escapes selbst zu zeigen, nicht druckbare Zeichen, und für die Konsistenz (es sollte die form einer Python string-literal, wenn ausgewertet wird, gibt wieder den gleichen string, war der Eingang zurepr
) kennen auch nicht jeden backslash, der Auftritt in der Zeichenfolge.Beachten Sie, dass dies eine eher begrenzte Flucht-Algorithmus. Je nachdem, was Sie es benötigen, für die, die Sie haben können, um es zu erweitern, deutlich an (oder gibt es eine fertige Lösung, z.B. preprared Anweisungen bei der Arbeit mit Datenbanken)
Ihrem ersten Versuch Prima funktioniert. Die Doppel-backslashes, die Sie sehen sind einfach eine Art der Darstellung der einzelne umgekehrte Schrägstriche, die tatsächlich in der Zeichenfolge. Siehe auch:
__repr__()
Dieser hat den job für mich.
einem umgekehrten Schrägstrich nicht sehen, aber der Schrägstrich bleibt in der Zeichenfolge.
wenn Sie überprüfen Sie die Länge der Zeichenfolge, werden Sie in der Lage, um zu sehen, zu beantworten.
Auch, wenn Sie durch neue ersetzen Zeichenfolge wieder, die mit doppelten Anführungszeichen, erhalten Sie die ursprüngliche Zeichenfolge.