Was bedeutet vor einem String-Literal ein “r”? [duplicate]

Lesezeit: 2 Minuten

Was bedeutet vor einem String Literal ein r duplicate
Nikki Erwin Ramírez

Ich habe es zum ersten Mal beim Erstellen von regulären Ausdrücken über mehrere Zeilen als Methodenargument gesehen re.compile()also bin ich davon ausgegangen r steht für RegEx.

Beispielsweise:

regex = re.compile(
    r'^[A-Z]'
    r'[A-Z0-9-]'
    r'[A-Z]$', re.IGNORECASE
)

Also was macht r meinst du in diesem Fall? Warum brauchen wir es?

  • Beachten Sie, dass das Aufteilen von Zeichenfolgen über mehrere Zeilen innerhalb von Klammern nichts mit dem Zeichenpräfix zu tun hat – dies ist nur ein Beispiel für Pythons automatische Zeichenfolgenverkettung und funktioniert mit jedem Präfix oder keinem.

    – Daniel Rosemann

    24. Januar 11 um 9:10 Uhr

Der r bedeutet, dass der String als Rohstring behandelt werden soll, was bedeutet, dass alle Escape-Codes ignoriert werden.

Zum Beispiel:

'n' wird als Zeilenumbruchzeichen behandelt, während r'n' werden wie die Zeichen behandelt gefolgt von n.

Wenn ein 'r' oder 'R' Präfix vorhanden ist, wird ein auf einen umgekehrten Schrägstrich folgendes Zeichen unverändert in die Zeichenfolge eingefügt, und alle umgekehrten Schrägstriche werden in der Zeichenfolge belassen. Beispielsweise das Zeichenfolgenliteral r"n" besteht aus zwei Zeichen: einem Backslash und einem Kleinbuchstaben 'n'. String-Anführungszeichen können mit einem umgekehrten Schrägstrich maskiert werden, aber der umgekehrte Schrägstrich bleibt in der Zeichenfolge; zum Beispiel, r""" ist ein gültiges Zeichenfolgenliteral, das aus zwei Zeichen besteht: einem umgekehrten Schrägstrich und einem doppelten Anführungszeichen; r""
ist kein gültiges Zeichenfolgenliteral (selbst eine unformatierte Zeichenfolge kann nicht mit einer ungeraden Anzahl von umgekehrten Schrägstrichen enden). Insbesondere darf eine unformatierte Zeichenfolge nicht mit einem einzelnen umgekehrten Schrägstrich enden (da der umgekehrte Schrägstrich das folgende Anführungszeichen maskieren würde). Beachten Sie auch, dass ein einzelner umgekehrter Schrägstrich, gefolgt von einem Zeilenumbruch, als diese beiden Zeichen als Teil der Zeichenfolge und nicht als Zeilenfortsetzung interpretiert wird.

Quelle: Python-String-Literale

  • der Backslash “ darf nicht die letzte Charta sein oder sonst ein Fehler SyntaxError: EOL while scanning string literal tritt ein. Für Python3 ist es print (r"Testnew")

    – Arthur

    23. Mai 17 um 3:07 Uhr


  • String-Interpolation mit .format() funktioniert immer noch auf rohen Saiten. Formatierungsbeispiele

    – Xander-Müller

    27. Dezember 17 um 16:46 Uhr

Es bedeutet, dass Fluchten nicht übersetzt werden. Beispielsweise:

r'n'

ist eine Zeichenfolge mit einem Backslash gefolgt von dem Buchstaben n. (Ohne das r es wäre ein Zeilenumbruch.)

b steht für Byte-String und wird in Python 3 verwendet, wo Strings standardmäßig Unicode sind. In Python 2.x waren Strings standardmäßig Byte-Strings und Sie würden verwenden u um Unicode anzuzeigen.

.

758440cookie-checkWas bedeutet vor einem String-Literal ein “r”? [duplicate]

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy