我有以下正则表达式\ssrc=(\"|\')([^\"|\']+)(\"|\')
我在源代码中使用scrape网站获取图像。我想要的图像采用以下格式:
<img src="http://www.asite.com/content/icon_clown.gif"
<img src='essays.gif'
<img src="monty-python-(1).bmp"
<img src="gchq-certified.jpg"
我的正则表达式找到了它们但显示为:
('"', 'http://www.asite.com/content/icon_clown.gif', '"')
("'", 'essays.gif', "'")
('"', 'monty-python-(1).bmp', '"')
('"', 'gchq-certified.jpg', '"')
我希望他们像这样显示:
http://www.asite.com/content/icon_clown.gif
我需要正则表达式来匹配上面显示的所有4个图像源。
如果有人能指出我正确的方向,那就太好了。
答案 0 :(得分:0)
您的正则表达式包含3个分组(..)
。您可以通过访问结果的索引2(0表示全部,1表示第一个分组等)或仅在中间部分使用( )
来获得中间部分。
E.g。像:
x = "<img src=\"http://www.asite.com/content/icon_clown.gif\""
results = re.search("src=(\"|\')([^\"|\']+)(\"|\')",x)
print(results.group(2))
输出:
'http://www.asite.com/content/icon_clown.gif'
编辑:
import re
x = "<img src=\"http://www.asite.com/content/icon_clown.gif\"" \
"<img src=\'essays.gif\'" \
"<img src=\"monty-python-(1).bmp\"" \
"<img src=\"gchq-certified.jpg\""
results = re.findall("src=[\"|\']([^\"|\']+)[\"|\']",x)
print(results)
输出:
['http://www.asite.com/content/icon_clown.gif', 'essays.gif', 'monty-python-(1).bmp', 'gchq-certified.jpg']