Python 何时在正则表达式模式中使用原始字符串?

Python 何时在正则表达式模式中使用原始字符串?,python,regex,Python,Regex,从上的文档中,我了解到,建议对模式使用“原始”字符串,以确保不会以任何特殊方式处理反斜杠: 正则表达式使用反斜杠字符('\')表示 特殊形式或允许使用特殊字符而无需 调用它们的特殊含义。这与Python对 字符串文字中用于相同目的的相同字符;对于 例如,要匹配文字反斜杠,可能需要编写'\\\' 作为模式字符串,因为正则表达式必须是\\,并且 每个反斜杠必须在常规Python字符串中表示为\\ 文字 解决方案是将Python的原始字符串表示法用于正则表达式 表达模式;反斜杠不会以任何特殊方式处理

从上的文档中,我了解到,建议对模式使用“原始”字符串,以确保不会以任何特殊方式处理反斜杠:

正则表达式使用反斜杠字符(
'\'
)表示 特殊形式或允许使用特殊字符而无需 调用它们的特殊含义。这与Python对 字符串文字中用于相同目的的相同字符;对于 例如,要匹配文字反斜杠,可能需要编写
'\\\'
作为模式字符串,因为正则表达式必须是
\\
,并且 每个反斜杠必须在常规Python字符串中表示为
\\
文字

解决方案是将Python的原始字符串表示法用于正则表达式 表达模式;反斜杠不会以任何特殊方式处理 前缀为
'r'
的字符串文字


我想知道还有哪些情况(除了文字反斜杠)需要使用原始字符串?

另一个例子是像
\1
\2
这样的序列,它们在Python字符串中是八进制转义,但在正则表达式中引用捕获的组

>>> re.search(r"(\w+) \1", "the the")
<_sre.SRE_Match object; span=(0, 7), match='the the'>
>>> re.search("(\w+) \1", "the the")
>>> 
重新搜索(r“(\w+)\1”,“the”) >>>重新搜索(“(\w+)\1”,“the”) >>>
几乎所有可以解释为Python字符串转义序列的内容。。。否?它在处理路径时很有用,至少在Windows上。。。e、 g.“C:\Users\Me\Desktop”的行为可能不符合要求。