为什么表达包含'\'的正则表达式而不是原始字符串。

时间:2015-11-25 11:17:45

标签: python regex python-3.4

请参阅此正则表达式HOWTO for python3

https://docs.python.org/3/howto/regex.html#performing-matches

>>> p = re.compile('\d+')
>>> p.findall('12 drummers drumming, 11 pipers piping, 10 lords a-leaping')
['12', '11', '10']

我已经读过,对于包含'\'的正则表达式,原始字符串应该像r'\d+'一样使用,但在此代码中使用代码段re.compile('\d+')而不使用r说明符。它工作正常。为什么它首先起作用?为什么这个正则表达式不需要前面的“r”?

1 个答案:

答案 0 :(得分:8)

它恰好起作用,因为'\d''\n''\t'这样的特殊字符不对应。有时原始字符串与常规字符串版本相同。但一般来说,原始字符串将确保您的表达不会出现任何意外。