"r" 什么时候对原始字符串没有影响

When does that "r", for raw string, not make a difference

我写了一些简单的测试代码来试验。

#begin code Python 2.7.12 running in Windows command window
import re
s2='''corn grows
higher\n
 still.
'''

print (s2)
print (re.sub('\n', '~', s2),"test a")
print (re.sub(r'\n', '~', s2),"test ar")
print (re.sub('\s', '~', s2),"test b")
print (re.sub(r'\s', '~', s2),"test br")

##开始输出到屏幕:####################

corn grows
higher

 still.

('corn grows~higher~~ still.~', 'test a') ('corn grows~higher~~ still.~', 'test ar') ('corn~grows~higher~~~still.~', 'test b') ('corn~grows~higher~~~still.~', 'test br')

  1. 为什么原始字符串的“r”对这段代码没有影响?

  2. 什么时候即使有特殊的“r”也没有什么区别 字符?

这个真的是以前讨论过的话题吗?来吧。我看了。|

the python docs 开始,re 模块将任何带有单斜杠和双斜杠的转义序列视为相同。换句话说,'\n''\n' 在字符串中被视为相同,还有 '\s''\s''\r''\r' 等.