请参阅此正则表达式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”?
答案 0 :(得分:8)
它恰好起作用,因为'\d'
与'\n'
或'\t'
这样的特殊字符不对应。有时原始字符串与常规字符串版本相同。但一般来说,原始字符串将确保您的表达不会出现任何意外。