Einführung
Sie können in Python einen Rohstring erstellen, indem Sie eine Zeichenkette mit r
oder R
präfixieren. Ein Python-Rohstring behandelt das Backslash-Zeichen (\) als Literal. Rohstring ist nützlich, wenn eine Zeichenkette ein Backslash enthalten muss, beispielsweise für einen regulären Ausdruck oder einen Windows-Verzeichnispfad, und Sie möchten nicht, dass es als Escape-Zeichen behandelt wird. Dieser Artikel behandelt die Grundlagen der Funktionsweise von Python-Rohzeichenketten und bietet einige häufige Beispiele dafür, wie Rohzeichenketten verwendet werden können, um Sonderzeichen in Zeichenketten einzufügen.
Die Beispiele in diesem Artikel verwenden die Python-Interaktive Konsole in der Befehlszeile, um verschiedene Szenarien mit Rohzeichenketten zu demonstrieren.
Einfügen eines Zeilenumbruchs in einer Zeichenkette mit Rohzeichenkette
Dieses Beispiel verwendet eine Zeichenkette mit dem Wert: Hi\nHello
. Wenn Sie versuchen, diesen Wert einer normalen Zeichenkette zuzuweisen, erstellt das Zeichen für den Zeilenumbruch (\n
) eine neue Zeile:
- s = 'Hi\nHello'
Drucken Sie die Zeichenkette:
- print(s)
Die Ausgabe lautet:
Hi
Hello
Die Ausgabe zeigt, dass das Zeichen für den Zeilenumbruch zu einer neuen Zeile führt.
Um das Zeichen für einen Zeilenumbruch in den String einzubeziehen, verwenden Sie das Präfix r
oder R
, um einen Rohstring zu erstellen:
- raw_s = r'Hi\nHello'
Drucken Sie den String:
- print(raw_s)
Die Ausgabe lautet:
Hi\nHello
Die Ausgabe enthält das Zeichen für einen Zeilenumbruch.
Einschließen von doppelten Backslash-Zeichen in einem String mithilfe von Rohstrings
Wenn Sie versuchen, doppelte Backslash-Zeichen, wie beispielsweise für einen Hostnamenpfad, in einem normalen String einzuschließen, wird das erste Backslash-Zeichen nicht gedruckt, da der Compiler das Backslash als Fluchtzeichen betrachtet.
Zum Beispiel, erstellen Sie einen String, der einen Pfad enthält:
- s = '\\examplehost\digitalocean\content\'
Drucken Sie den String:
- print(s)
Die Ausgabe lautet:
\examplehost\digitalocean\content\
Die Ausgabe zeigt, dass das erste Backslash-Zeichen nicht im String enthalten ist.
Um beide Backslash-Zeichen in den String einzubeziehen, verwenden Sie das Präfix r
oder R
, um einen Rohstring zu erstellen:
- s = r'\\examplehost\digitalocean\content\'
Drucken Sie den String:
- print(s)
Die Ausgabe lautet:
\\examplehost\digitalocean\content\
Die Ausgabe enthält beide Backslash-Zeichen.
Fehlerbehebung für Anführungszeichen und Backslash-Zeichen in Rohzeichenfolgen
In einer Rohzeichenfolge können Anführungszeichen weiterhin mit einem einzelnen Backslash-Zeichen maskiert werden, jedoch bleibt das Backslash-Zeichen in der resultierenden Rohzeichenfolge erhalten.
Zusätzlich kann eine Rohzeichenfolge nicht mit einer ungeraden Anzahl von Backslash-Zeichen enden. Aufgrund dieses Merkmals können Sie keine Rohzeichenfolge erstellen, die ein einzelnes Backslash-Zeichen enthält, daher ist r"/"
eine ungültige Zeichenfolge.
Beispiele für ungültige Rohzeichenfolgen
In diesem Beispiel fehlt das abschließende Anführungszeichen in der Ausgabe, da es durch das Backslash-Zeichen maskiert wird und einen unbeendeten Zeichenkettenliteral
-Fehler verursacht:
r'\'
In diesem Beispiel werden die ersten beiden Backslash-Zeichen sich gegenseitig maskieren, und das dritte wird versuchen, das abschließende Anführungszeichen zu maskieren, was zu einem unbeendeten Zeichenkettenliteral
-Fehler führt:
r'ab\\\'
Gültige Beispiele für Rohzeichenfolgen
Hier sind einige Beispiele für gültige Rohzeichenketten, die Anführungszeichen und Backslash-Zeichen enthalten.
Erstellen Sie eine Rohzeichenkette, die Anführungszeichen escapet:
- s = r"\"\""
Drucken Sie die Zeichenkette:
- print(s)
Die Ausgabe lautet:
\"\"
Die Ausgabe zeigt, dass die Backslash-Zeichen die Anführungszeichen escapen, sodass die Zeichenkette nicht beendet wird, aber die Backslash-Zeichen im Ergebnis bleiben.
Erstellen Sie eine Rohzeichenkette mit einer geraden Anzahl von Backslash-Zeichen:
- s = R'ab\\'
Drucken Sie die Zeichenkette:
- print(s)
Die Ausgabe lautet:
ab\\
Die Ausgabe zeigt, dass die gerade Anzahl von Backslash-Zeichen in die Ergebniszeichenkette einbezogen wird.
Abschluss
In diesem Artikel haben Sie die Grundlagen von Rohzeichenketten in Python gelernt. Setzen Sie Ihr Lernen über Python-Zeichenketten fort.
Source:
https://www.digitalocean.com/community/tutorials/python-raw-string