如果我在正则表达式中包含空格,那么有什么区别

时间:2017-02-18 04:13:47

标签: regex python-3.x

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

任何人都可以解释为什么我在输出中得到这个差异

1 个答案:

答案 0 :(得分:0)

当您在matchObj = re.match( r'(.*) are (.*) ', line)中添加额外空格时,您要求在(.*)中匹配尽可能多的字符,后跟空格。

在这种情况下,它是smarter than,因为空格字符与dogs中的空格匹配。

如果没有空格,.可以匹配除新行之外的任意数量的字符。因此它最终匹配到字符串smarter than dogs

的结尾

阅读regex上的文档以获取更多信息。