Index: Misc/NEWS =================================================================== --- Misc/NEWS (revision 62172) +++ Misc/NEWS (working copy) @@ -12,6 +12,9 @@ Core and Builtins ----------------- +- All backslashes in raw strings are interpreted literally. This means that + Unicode escapes are not treated specially. + Extension Modules ----------------- Index: Doc/reference/lexical_analysis.rst =================================================================== --- Doc/reference/lexical_analysis.rst (revision 62172) +++ Doc/reference/lexical_analysis.rst (working copy) @@ -423,8 +423,9 @@ itself, or the quote character. String literals may optionally be prefixed with a letter ``'r'`` or ``'R'``; -such strings are called :dfn:`raw strings` and use different rules for -interpreting backslash escape sequences. +such strings are called :dfn:`raw strings` and treat backslashes as literal +characters. As a result, Unicode escapes in raw strings are not treated +specially. Bytes literals are always prefixed with ``'b'`` or ``'B'``; they produce an instance of the :class:`bytes` type instead of the :class:`str` type. They @@ -520,15 +521,6 @@ escape sequences only recognized in string literals fall into the category of unrecognized escapes for bytes literals. -When an ``'r'`` or ``'R'`` prefix is used in a string literal, then the -``\uXXXX`` and ``\UXXXXXXXX`` escape sequences are processed while *all other -backslashes are left in the string*. For example, the string literal -``r"\u0062\n"`` consists of three Unicode characters: 'LATIN SMALL LETTER B', -'REVERSE SOLIDUS', and 'LATIN SMALL LETTER N'. Backslashes can be escaped with a -preceding backslash; however, both remain in the string. As a result, -``\uXXXX`` escape sequences are only recognized when there is an odd number of -backslashes. - Even in a raw string, 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"\"`` Index: Doc/whatsnew/3.0.rst =================================================================== --- Doc/whatsnew/3.0.rst (revision 62172) +++ Doc/whatsnew/3.0.rst (working copy) @@ -167,6 +167,9 @@ explicitly convert between them, using the :meth:`str.encode` (str -> bytes) or :meth:`bytes.decode` (bytes -> str) methods. +* All backslashes in raw strings are interpreted literally. This means that + Unicode escapes are not treated specially. + .. XXX add bytearray * PEP 3112: Bytes literals, e.g. ``b"abc"``, create :class:`bytes` instances. @@ -183,7 +186,9 @@ * The :mod:`StringIO` and :mod:`cStringIO` modules are gone. Instead, import :class:`io.StringIO` or :class:`io.BytesIO`. +* Unicode escapes in raw strings are not treated specially. + PEP 3101: A New Approach to String Formatting =============================================