我在字符串变量中有HTML代码。我要从此修改此标签:
<a href="/fileszzr/images/3.jpg">3.jpg</a>
到
<a href="/fileszzr/images/3.jpg" download="3.jpg">3.jpg</a>
,基本上添加“ download="3.jpg"
我想这样做,所有链接的末尾都扩展为.jpg
,.png
,.gif
,.jpeg
,.mp4
。
答案 0 :(得分:0)
也许有更简单的方法可以完成此操作,但是我认为一种开始的方法可能是使用regex
。定义模式以查找所有文件结尾。然后获取文件名(例如3.jpg
)以编译一个.replace()
为第一个模式的字符串。像这样:
import re
# all possible formats you mentioned:
html = ['<a href="/fileszzr/images/3.jpg">3.jpg</a>',
'<a href="/fileszzr/images/3.png">3.png</a>',
'<a href="/fileszzr/images/3.gif">3.gif</a>',
'<a href="/fileszzr/images/3.jpeg">3.jpeg</a>',
'<a href="/fileszzr/images/3.mp4">3.mp4</a>']
# regex patterns (everything within paranthesis is going to be extracted
regex1 = re.compile(r'(\.jpg\"|\.png\"|\.gif\"|\.jpeg\"|\.mp4\")')
regex2 = re.compile(r'\/images\/(.*?)\.')
# iterate over the strings
for x in html:
if regex1.search(x): # if pattern is found:
# find and extract
a = regex1.search(x).group(1)
b = regex2.search(x).group(1)
# compile new string by replacing a
new = x.replace(a, f'{a} download="{b + a}')
print(new)
这给您:
<a href="/fileszzr/images/3.jpg" download="3.jpg">3.jpg</a>
<a href="/fileszzr/images/3.png" download="3.png">3.png</a>
<a href="/fileszzr/images/3.gif" download="3.gif">3.gif</a>
<a href="/fileszzr/images/3.jpeg" download="3.jpeg">3.jpeg</a>
<a href="/fileszzr/images/3.mp4" download="3.mp4">3.mp4</a>
如果您想进一步了解regex
,请参阅documentation。
此外,请注意,Python版本> 3.6支持f字符串(如f'{a} download="{b + a}'
)。