import re
line = "Cats are smarter than dogs"
matchObj = re.match( r'(.*) are (.*)', line)
if matchObj:
print ("matchObj.group(2) : ", matchObj.group(2))
else:
print ("No match!!")
当我运行此代码时,我得到一个输出:smarter than dogs
但是如果在我的RE的最后添加一个额外的空间
matchObj = re.match( r'(.*) are (.*) ', line)
我输出为:smarter than
任何人都可以解释为什么我在输出中得到这个差异
答案 0 :(得分:0)
当您在matchObj = re.match( r'(.*) are (.*) ', line)
中添加额外空格时,您要求在(.*)
中匹配尽可能多的字符,后跟空格。
在这种情况下,它是smarter than
,因为空格字符与dogs
中的空格匹配。
如果没有空格,.
可以匹配除新行之外的任意数量的字符。因此它最终匹配到字符串smarter than dogs
。
阅读regex上的文档以获取更多信息。