【发布时间】:2017-10-17 11:22:03
【问题描述】:
从regular expression 的文档中,我了解到建议对模式使用“原始”字符串,以确保不以任何特殊方式处理反斜杠:
正则表达式使用反斜杠字符(
'\')表示 特殊形式或允许使用特殊字符而不 调用它们的特殊含义。这与 Python 的使用相冲突 字符串文字中用于相同目的的相同字符;为了 例如,要匹配文字反斜杠,可能必须编写'\\\\'作为模式字符串,因为正则表达式必须是\\,并且 每个反斜杠必须在常规 Python 字符串中表示为\\字面意思。解决方案是使用 Python 的原始字符串表示法 表达模式;反斜杠不以任何特殊方式处理 以
'r'为前缀的字符串文字。
我想知道其他情况(除了文字反斜杠)可能需要使用原始字符串吗?
【问题讨论】:
-
几乎所有可以解释为 Python 字符串转义序列的东西......不是吗?
-
在处理路径时很有用,至少在 Windows 上......例如“C:\Users\Me\Desktop”的行为可能不符合预期。