请教一个简单的正则表达式的问题。

ucdosxp 2016-10-24 12:29:53
import re

word='''hello
ddworld222ff'''
var="hello[\S\s]*?(world)?"
print(var)
pa=re.compile(var,re.M)
ma=pa.findall(word)
print(ma)

按照道理应该显示的world。但不知道为什么出不来。
...全文
300 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_36591904 2016-11-02
  • 打赏
  • 举报
回复
去掉(world)后面的?字符,就可以的得到[‘world']字符应该PYTHON默认按最小的值运行巴
qq_36591904 2016-11-02
  • 打赏
  • 举报
回复
正则中有带()的元字符,会优先匹配括号里面的字符,所以得出来的结果就是‘world'
ucdosxp 2016-10-31
  • 打赏
  • 举报
回复
但是很奇怪,文本中存在world,就应该要匹配的上呀。
nieoding 2016-10-30
  • 打赏
  • 举报
回复
可以访问https://regex101.com/#python,在线自测正则是否OK
nieoding 2016-10-30
  • 打赏
  • 举报
回复
正则里面 ? 是可有可无的意思,那么自然无法匹配到word
ucdosxp 2016-10-28
  • 打赏
  • 举报
回复
我知道去掉?可以 我是想问原因
屎克螂 2016-10-27
  • 打赏
  • 举报
回复
var="hello[\S\s]*?(world)?" 去掉最后的?

37,720

社区成员

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

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