representing a literal single slash

Padraig Brady Padraig at Linux.ie
Mon Sep 16 06:01:01 EDT 2002


Terry Reedy wrote:
> "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)

But there is no escaping when the prefix r is used?
I guess there is a good reason for this inconsitency?

Pádraig.




More information about the Python-list mailing list