Ich möchte doppelte Anführungszeichen entfernen von:
string = '"" " " ""\\1" " "" ""'
erhalten:
string = '" " " ""\\1" " "" "'
Ich habe versucht , zu verwenden rstrip
, lstrip
und , strip('[^\"]|[\"$]')
aber es hat nicht funktioniert.
Wie kann ich das machen?
strip
, beachten Sie bitte , dass a) diese Methode nicht einen regulären Ausdruck als Argument übernimmt, b) die regex Sie geliefert würde sowieso und c nicht gearbeitet haben) diese Methode entfernt alle benachbarten Zeichen, nicht nur eine, so Sie hätten zwei doppelte Anführungszeichen mit verloren.strip('"')
.Antworten:
Wenn die Anführungszeichen, die Sie entfernen möchten, immer "zuerst und zuletzt" sind, wie Sie gesagt haben, können Sie einfach Folgendes verwenden:
string = string[1:-1]
quelle
Wenn Sie nicht davon ausgehen können, dass alle von Ihnen verarbeiteten Zeichenfolgen doppelte Anführungszeichen haben, können Sie Folgendes verwenden:
Bearbeiten:
Ich bin sicher, dass Sie hier nur
string
als Variablennamen zur Veranschaulichung verwendet haben und in Ihrem realen Code einen nützlichen Namen haben, aber ich fühle mich verpflichtet, Sie zu warnen, dassstring
in den Standardbibliotheken ein Modul benannt ist . Es wird nicht automatisch geladen, aber wenn Sie es jemals verwenden,import string
stellen Sie sicher, dass Ihre Variable es nicht verdunkelt.quelle
So entfernen Sie das erste und das letzte Zeichen und entfernen es jeweils nur, wenn es sich bei dem betreffenden Zeichen um ein doppeltes Anführungszeichen handelt:
Beachten Sie, dass sich das RE-Muster von dem von Ihnen angegebenen unterscheidet und die Operation
sub
("Ersatz") mit einer leeren Ersatzzeichenfolge ist (strip
eine Zeichenfolgenmethode, die sich jedoch von Ihren Anforderungen unterscheidet, wie andere Antworten angegeben haben).quelle
startsWith
.WICHTIG: Ich erweitere die Frage / Antwort, um einfache oder doppelte Anführungszeichen zu entfernen. Und ich interpretiere die Frage so, dass BEIDE Zitate vorhanden und übereinstimmend sein müssen, um den Streifen auszuführen. Andernfalls wird die Zeichenfolge unverändert zurückgegeben.
Um eine Zeichenfolgendarstellung zu "dequoteieren", die entweder einfache oder doppelte Anführungszeichen enthält (dies ist eine Erweiterung der Antwort von @ tgray):
Erläuterung:
startswith
kann ein Tupel nehmen, um eine von mehreren Alternativen zu finden. Der Grund für die DOPPELTEN Klammern((
und))
ist, dass wir EINEN Parameter("'", '"')
an übergebenstartswith()
, um die zulässigen Präfixe anstelle von ZWEI Parametern anzugeben,"'"
und'"'
die als Präfix und (ungültige) Startposition interpretiert würden.s[-1]
ist das letzte Zeichen in der Zeichenfolge.Testen:
=>
(Für mich sind Regex-Ausdrücke nicht offensichtlich zu lesen, daher habe ich nicht versucht, die Antwort von @ Alex zu erweitern.)
quelle
len(s) >= 2
oder ähnliches hinzufügen .Wenn der String immer so ist, wie Sie ihn zeigen:
quelle
Fast fertig. Zitieren von http://docs.python.org/library/stdtypes.html?highlight=strip#str.strip
[...]
Das Argument ist also kein regulärer Ausdruck.
Beachten Sie, dass dies nicht genau das ist, was Sie angefordert haben, da es mehrere Anführungszeichen von beiden Enden der Zeichenfolge frisst!
quelle
Wenn Sie sicher sind, dass es am Anfang und am Ende ein "gibt, das Sie entfernen möchten, tun Sie einfach:
oder
quelle
Entfernen Sie eine bestimmte Zeichenfolge vom Anfang und Ende einer Zeichenfolge.
quelle
Ich habe einen Code, der einfache oder doppelte Anführungszeichen entfernen muss, und ich kann ihn nicht einfach ast.literal_eval.
Dies ähnelt der Antwort von ToolmakerSteve, erlaubt jedoch Zeichenfolgen mit einer Länge von 0 und verwandelt das einzelne Zeichen nicht
"
in eine leere Zeichenfolge.quelle
In Ihrem Beispiel könnten Sie Streifen verwenden, aber Sie müssen den Platz bereitstellen
Beachten Sie, dass das \ 'in der Ausgabe die Standard-Python-Anführungszeichen für die Zeichenfolgenausgabe sind
Der Wert Ihrer Variablen ist '\\ 1'.
quelle
Die folgende Funktion entfernt die leeren Leerzeichen und gibt die Zeichenfolgen ohne Anführungszeichen zurück. Wenn keine Anführungszeichen vorhanden sind, wird dieselbe Zeichenfolge zurückgegeben (entfernt).
quelle
Ab
Python 3.9
können Sie verwendenremoveprefix
undremovesuffix
:quelle
Finden Sie die Position des ersten und des letzten "in Ihrer Zeichenfolge
quelle