假设这是我们的文本:
text = 'After 1992 , the winter and summer Olympics will be held two years apart , with the revised schedule beginning with the winter games in 1994 and the summer games in 1996 . ) Now , Mr. Pilson -- a former college basketball player who says a good negotiator needs `` a level of focus and intellectual attention similar to a good athlete-s is facing the consequences of his own aggressiveness . Next month , talks will begin on two coveted CBS contracts'
print re.search(r'(\w+ |\W+ ){0,4}1992( \W+| \w+){4}', text).group(0)
输出: 1992年之后的冬天和
但是这个给了我:
print re.search(r'(\w+ |\W+ ){0,4}1992( \W+| \w+){0,4}', text).group(0)
输出: 1992 年之后,
这对我来说似乎很奇怪,因为为什么第二个正则表达式不贪婪?
这个比其他的有点奇怪:
print re.search(r'(\w+ |\W+ ){0,4}summer( \W+| \w+){0,4}', text).group(0)
输出, 冬夏 奥运会 将 举行
问题
1-第一个和第二个有什么区别。对我来说,它应该给出相同的文本,因为唯一的区别是{0,4}
如果{4}
给出长字符串,{0,4}
应该给出相同的字符串,因为正则表达式是贪婪的。
2-问题可能与标点符号有关,因为第三个示例{0,4}
和{4}
..
我很困惑。