python 正则表达式关于‘?’新手求助

吃麻辣拌的呆呆 2019-01-31 08:25:34
想请教一下大家,正则表达式中的?究竟是代表什么意思啊?
从下面来看,为什么(1)和(2)返回的结果是一样的,但是(2)和(4)返回的结果是不一样的呢?

>>> a='From stephen.marquard@uct.ac.za Sat Jan 5 09:14:16 2008'
(1)>>> b=re.findall('\S+@\S+',a)
>>> print(b)
['stephen.marquard@uct.ac.za']
(2)>>> b=re.findall('\S+?@\S+',a)
>>> print(b)
['stephen.marquard@uct.ac.za']
(3)>>> b=re.findall('\S+?@\S+?',a)
>>> print(b)
['stephen.marquard@u']
(4)>>> b=re.findall('\S+@\S+?',a)
>>> print(b)
['stephen.marquard@u']

谢谢大家了嗷!
...全文
1012 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
jeky_zhang2013 2019-02-16
  • 打赏
  • 举报
回复
3楼正解,正则表达式挺强大的。
YXTS122 2019-02-12
  • 打赏
  • 举报
回复
xdn1ce 2019-02-01
  • 打赏
  • 举报
回复
如楼上所说,贪婪模式与非贪婪模式的区别,默认为贪婪模式,使用?变为非贪婪模式。具体解释见链接:
https://www.cnblogs.com/xudong-bupt/p/3586889.html
  • 打赏
  • 举报
回复
麻烦大家了!
AcHerat 2019-01-31
  • 打赏
  • 举报
回复
因为3和4表达式走了贪婪模式

37,743

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • WuKongSecurity@BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧