Inleiding
Je kunt een raw string in Python maken door een string-letterlijke te voorzien van de prefix r
of R
. Een Python raw string behandelt het backslash-teken (\) als een letterlijk teken. Een raw string is handig wanneer een string een backslash moet bevatten, zoals bij een reguliere expressie of een Windows-directory-pad, en je wilt niet dat het wordt behandeld als een escape-teken. Dit artikel behandelt de basisprincipes van hoe Python raw strings werken en geeft een paar veelvoorkomende voorbeelden van hoe je raw strings kunt gebruiken om speciale tekens in strings op te nemen.
De voorbeelden in dit artikel maken gebruik van de Python interactieve console in de commandoregel om verschillende scenario’s met raw strings te demonstreren.
Het opnemen van een nieuwe regel in een string met behulp van een raw string
Deze voorbeeld maakt gebruik van een string met de waarde: Hi\nHello
. Als je probeert deze waarde toe te kennen aan een normale string, zal het newline-teken (\n
) een nieuwe regel maken:
- s = 'Hi\nHello'
Print de string:
- print(s)
De output is:
Hi
Hello
De output toont aan dat het newline-teken resulteert in een nieuwe regel.
Om het newline-teken op te nemen in de string, voeg het voorvoegsel r
of R
toe aan de string variabele om een ruwe string te maken:
- raw_s = r'Hi\nHello'
Print de string:
- print(raw_s)
De uitvoer is:
Hi\nHello
De uitvoer bevat het newline-teken.
Het opnemen van dubbele backslash-karakters in een string met behulp van een ruwe string
Als je probeert om dubbele backslash-karakters op te nemen, zoals bijvoorbeeld voor een hostnaam pad, in een normale string, dan wordt het eerste backslash-karakter niet afgedrukt omdat de compiler het backslash-teken beschouwt als een escape-indicator.
Bijvoorbeeld, maak een string die een pad bevat:
- s = '\\examplehost\digitalocean\content\'
Druk de string af:
- print(s)
De uitvoer is:
\examplehost\digitalocean\content\
De uitvoer toont aan dat het eerste backslash-teken niet is opgenomen in de string.
Om beide backslash-karakters op te nemen in de string, voeg het voorvoegsel r
of R
toe aan de string variabele om een ruwe string te maken:
- s = r'\\examplehost\digitalocean\content\'
Print de string:
- print(s)
De uitvoer is:
\\examplehost\digitalocean\content\
De uitvoer bevat beide backslash-karakters.
Problemen met aanhalingstekens en backslash-karakters in ruwe strings
In een ruwe string kunnen aanhalingstekens nog steeds worden ontsnapt met een enkel backslash-karakter, maar het backslash-karakter blijft in de resulterende ruwe string.
Bovendien kan een ruwe string niet eindigen met een oneven aantal backslash-karakters. Vanwege deze eigenschap kunt u geen ruwe string maken die een enkel backslash-karakter bevat, dus r"/"
is een ongeldige string.
Voorbeelden van Ongeldige Ruwe Strings
In dit voorbeeld ontbreekt het eindcitaat in de uitvoer omdat het wordt ontsnapt door het backslash-karakter, wat resulteert in een ongesloten tekenreeksletterlijke
-fout:
r'\'
In dit voorbeeld zullen de eerste twee backslashes elkaar ontsnappen, en de derde zal proberen het eindcitaat te ontsnappen, wat resulteert in een ongesloten tekenreeksletterlijke
-fout:
r'ab\\\'
Geldige Voorbeelden van Ruwe Strings
Hier zijn enkele voorbeelden van geldige ruwe strings die aanhalingstekens en backslash-karakters bevatten.
Maak een ruwe string die aanhalingstekens ontsnapt:
- s = r"\"\""
Print de string:
- print(s)
De uitvoer is:
\"\"
De uitvoer toont aan dat de backslash-karakters de aanhalingstekens ontsnappen zodat de string niet wordt afgesloten, maar de backslash-karakters blijven in de resulterende string.
Maak een ruwe string met een even aantal backslash-karakters:
- s = R'ab\\'
Print de string:
- print(s)
De uitvoer is:
ab\\
De uitvoer toont aan dat het even aantal backslash-karakters is opgenomen in de resulterende string.
Conclusie
In dit artikel heb je de basisprincipes van ruwe strings in Python geleerd. Ga verder met leren over Python strings.
Source:
https://www.digitalocean.com/community/tutorials/python-raw-string