representing a literal single slash

Terry Reedy tjreedy at udel.edu
Mon Sep 16 00:59:36 CEST 2002


"Padraig Brady" <padraig at linux.ie> wrote in message
news:3D84FEE6.90600 at linux.ie...
> > mystr = mystr.replace(r'\\', r'\')
>
> Emm this actually doesn't work. Why can't you:
> s=r'\'
> Is it a bug?

Ref Manual 4.1:
When an `r' or `R' prefix is present, a character following a
backslash is included in the string without change, and all
backslashes are left in the string. For example, the string literal
r"\n" consists of two characters: a backslash and a lowercase `n'.
String quotes can be escaped with a backslash, but the backslash
remains in the string; for example, r"\"" is a valid string literal
consisting of two characters: a backslash and a double quote; r"\" is
not a valid string literal (even a raw string cannot end in an odd
number of backslashes). Specifically, a raw string cannot end in a
single backslash (since the backslash would escape the following quote
character). Note also that a single backslash followed by a newline is
interpreted as those two characters as part of the string, not as a
line continuation.

Terry J. Reedy








More information about the Python-list mailing list