为什么'S+?@S+' '?'不贪婪?



下面是我要应用代码的文本:

text = From stephen.marquard@uct.ac.za Sat Jan 5 09:14:16 2008

,我使用这个正则表达式:y = re.findall('S+?@S+',text),这样我就可以输出

'd@uct.ac.za',但返回'stephen.marquard@uct.ac.za'。你能给我解释一下为什么?'被忽略了,我如何修复这个代码来得到我想要的结果?

不贪心?正常工作,但是正则表达式从左到右匹配,并以一个nin空格字符S开始,然后尽可能重复该操作,直到@

如果要匹配除@以外的单个非空白字符

[^s@]@[^s@]+

Regex演示

你可以在给定的文本上尝试这个

.@.*...

正则表达式演示

最新更新