为什么这个正则表达式的计算结果为None而不是匹配的对象



我正在自学Python;用Python自动化无聊的东西";我对书中的一个代码有点困惑。

>>> wholeStringIsNum = re.compile(r'^d+$')
>>> wholeStringIsNum.search('1234567890')
<re.Match object; span=(0, 10), match='1234567890'>
>>> wholeStringIsNum.search('12345xyz67890') == None
True
>>> wholeStringIsNum.search('12  34567890') == None
True

传递给最后两个search((方法的字符串似乎符合正则表达式,因为字符串的开头和结尾都是一个或多个数字,所以为什么我不返回一个匹配的对象而不是一个?书中说,如果插入符号和美元符号在正则表达式中,那么方法中传递的字符串需要完全符合正则表达式模式,但我不明白为什么会这样,如果似乎遵循了正则表达式的模式。

对于预期的应用程序,使用

^d.*d$

最新更新