【问题标题】:Python regex: re.search() does not find stringPython 正则表达式:re.search() 找不到字符串
【发布时间】:2020-08-12 10:31:45
【问题描述】:

我在使用 re.search() 方法时遇到了问题。我正在尝试从以下显式字符串中提取图像链接:

div class="beitragstext">\n\t\t\t\t<p>Es gibt derzeit keine Gründe mehr NICHT auf 1.1.3 zu springen!</p>\n<p><a href="http://www.flickr.com/photos/factoryjoe/372948722/"><img src="https://www.iphoneblog.de/wp-content/uploads/2008/02/372948722-6ec4028a80.jpg" alt="372948722_6ec4028a80.jpg" border="0" width="430" height="466" /></a></p>\n<p>Photo: <a href="http://www.flickr.com/photos/factoryjoe">factoryjoe</a>

我想减去第一张图片的网址,而且只有网址。

这是我的代码: imageURLObject = re.search(r'http(?!.*http).*?\.(jpg|png|JPG|PNG)', match)

结果应该是https://www.iphoneblog.de/wp-content/uploads/2008/02/372948722-6ec4028a80.jpg

相反,方法返回是无。 但是如果使用这个正则表达式re.search(r'http.*?\.(jpg|png|JPG|PNG)', match),没有`*(?!.http),第一个http命中将匹配到。(jpg|png| JPG|PNG) 这就是回报:

http://www.flickr.com/photos/factoryjoe/372948722/"><img src="https://www.iphoneblog.de/wp-content/uploads/2008/02/372948722-6ec4028a80.jpg

有人可以帮帮我吗? :-)

【问题讨论】:

  • 图片链接是否总是在'src='之后?
  • 是的,我之前没有注意到。我将它添加到我的正则表达式中,现在它可以工作了。谢谢!!

标签: python regex string search no-match


【解决方案1】:

使用 Beautiful soup 进行 HTML 解析..

https://beautiful-soup-4.readthedocs.io/en/latest/

from bs4 import BeautifulSoup

html = """
<div class="beitragstext">\n\t\t\t\t<p>Es gibt derzeit keine Gründe mehr NICHT auf 1.1.3 zu springen!</p>\n<p><a href="http://www.flickr.com/photos/factoryjoe/372948722/"><img src="https://www.iphoneblog.de/wp-content/uploads/2008/02/372948722-6ec4028a80.jpg" alt="372948722_6ec4028a80.jpg" border="0" width="430" height="466" /></a></p>\n<p>Photo: <a href="http://www.flickr.com/photos/factoryjoe">factoryjoe</a>
"""

soup = BeautifulSoup(html, 'lxml')
links = soup.find_all('div', {'class': 'beitragstext'})

for i in links:
    print(i.find('img')['src'])

>>> https://www.iphoneblog.de/wp-content/uploads/2008/02/372948722-6ec4028a80.jpg

【讨论】:

  • 您也可以使用请求直接从 url 获取 html..阅读文档.. 非常简单!
猜你喜欢
  • 1970-01-01
  • 2012-02-18
  • 2013-03-24
  • 2016-05-16
  • 1970-01-01
  • 1970-01-01
  • 2015-06-11
  • 1970-01-01
  • 2012-05-28
相关资源
最近更新 更多