首页 > 解决方案 > Python正则表达式提取html标签的src内容?

问题描述

我尝试过这样的事情但失败了。我不知道正则表达式有人可以帮助我吗?

import re

html = """
<body>
<h1>dummy heading</h1>
<img src="/pic/earth.jpg" alt="planet" width="200">
<img src="/pic/redrose.jpg" alt="flower" width="200">
</body>
"""
x = re.search('^src=".*jpg$', html)
print(x)

我期待这样的输出 ['/pic/earth.jpg','/pic/redrose.jpg']

标签: pythonregex

解决方案


我不擅长正则表达式。所以我的回答可能不是最好的。

尝试这个。

x = re.findall(r'(?=src)src=\"(?P<src>[^\"]+)', html)

比你可以看到下面的 x 。

['/pic/earth.jpg', '/pic/redrose.jpg']

正则表达式解释:

(?=src) : 正向查找 --> 只看到那些有src字的

src=\" : 必须包含这个特定的单词src="

(?P somthing) :这个表达式将 somthing 分组命名为src

[^\"]+ : 除了 " 字符之外的所有内容


推荐阅读