2014-10-11 131 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’前綴;這樣的字符串被稱爲原始字符串,並使用不同的規則,用於解釋反斜槓轉義序列」。

相關問題