2014-10-11 674 views

回答

9

在字符串文字创建所谓的raw-string文字之前放置rR。原始字符串不会处理转义序列(\n,\b等),因此通常用于正则表达式模式,其中通常包含大量的\字符。

下面是一个演示:

>>> print('\n') # Prints a newline character 


>>> print(r'\n') # Escape sequence is not processed 
\n 
>>> print('\b') # Prints a backspace character 

>>> print(r'\b') # Escape sequence is not processed 
\b 
>>> 

唯一的其他选择是每一个反斜杠加倍:

re.sub('def\\s+([a-zA-Z_][a-zA-Z_0-9]*)\\s*\\(\\s*\\):', 
...  'static PyObject*\\npy_\\1(void)\\n{', 
...  'def myfunc():') 

这仅仅是单调乏味的。

1

r表示该字符串被视为一个原始字符串,这意味着所有的转义码都将被忽略。

蛇皮文件说这正是:

“的字符串文字可以任选地用一个字母‘R’或‘R’前缀;这样的字符串被称为原始字符串,并使用不同的规则,用于解释反斜杠转义序列”。

相关问题