在Python 3.7中,我试图构建一个匹配的正则表达式
line = "\tCOMPANY_NAME:\tMicrosoft"
但这不匹配
line2 = "\tCOMPANY_NAME:\t"
我尝试过使用"^\t(.+):\t*(.+)$"
,但不幸的是,它与line2
相匹配:
> import re
> re.match("^\t(.+):\t*(.+)$", line2)
<re.Match object; span=(0, 15), match='\tCOMPANY_NAME:\t'>
我不明白为什么。 \t*
应该吃掉最后一个标签,而(.+)
却一无所有。因此,我认为该正则表达式不应该与line2
相匹配?
唯一可能的解释是让\t*
将最后一个标签留到(.+)
,但是*
不是贪婪的运算符吗?