python正则表达式

srcset=\"https://images/816057/photo-816057.jpeg?h=350&auto=compress&...

在很多类似代码中,我需要匹配出https://images/816057/photo-816057.jpeg或是以jpg结尾的字符串。

我写的代码

patten = r'(?<=srcset=\\")http.+?(.jpeg|.jpg)'

res = re.findall(patten,str)

但是结果是['.jpeg', '.jpeg', '.jpeg', '.jpg'],请问下各位该怎么解决

阅读 2.1k
2 个回答
p = re.compile('(?<=srcset=\\")(http.*?(?:.jpeg|.jpg))')

(...)是分组用的,被括起来的表达式用于分组。
(?:) 是(...)的不分组版本,用于使用'|'或数量词
所以分组的应该是http...jpg这个整体。

patten = r'(?<=srcset=\\")(http.+?(?:.jpeg|.jpg))'
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题