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”的行为可能不符合要求。