我有一堆HTML文本,我希望找到所有带有标记img
的文本模式并更改它们的模板。如果最初的文字是:在Python中查找并替换文本模式
<img alt=src="http://www.example.com/image.png" />
输出它会成为这个
:
[insert picture: []("http://www.example.com/image.png")]
我如何处理这个?
我有一堆HTML文本,我希望找到所有带有标记img
的文本模式并更改它们的模板。如果最初的文字是:在Python中查找并替换文本模式
<img alt=src="http://www.example.com/image.png" />
输出它会成为这个
:
[insert picture: []("http://www.example.com/image.png")]
我如何处理这个?
你的例子看起来很简单,你可以做这样的事情:
In [140]: my_str = '<img alt=src="http://www.example.com/image.png" />'
In [141]: re.sub(r'\<img.*src\=\"(http\://.*\.png)\".*\/\>', '[insert picture: []("\\1")]', my_str)
Out[141]: '[insert picture: []("http://www.example.com/image.png")]'
不要试图推倒重来。
使用urlextract模块
from urlextract import URLExtract
text="<img alt=src="http://www.example.com/image.png" />"
extractor = URLExtract()
urls = extractor.find_urls(text)
print(urls) # prints: ['www.example.com/image.png']
感谢您的回答,但找到URL只是问题的第一部分。只需遍历整个HTML代码,找到找到的每个URL的索引并不是此问题第二部分的最佳解决方案。我们可能会在文本中多次重复一个网址。需要一个解决方案来找到并替换所有的img标签。 – cookiedough
标签(荷兰国际集团)?你的意思是(img)? –
跟我重复:不要用正则表达式解析HTML –
@keyvanvafaee是的,我编辑了,谢谢。 – cookiedough