python - Python 迭代、replace() 和 strip()
问题描述
尽可能简单:
我编写了一个 python 脚本来从 api 中提取嵌入链接。我可以轻松地返回类似于以下的嵌入链接列表:
[<embed>www.example.com/embed/4657889</embed>, <embed>www.example1.com/embed/789465/</embed>, <embed>www.example2.com/embed/132456/</embed>]
但接下来我想做的是获取这个返回的列表,并替换 every<embed>
以及<embed src="
替换 every </embed>
,">
最终创建一个如下所示的新列表:
[<embed src="www.example.com/embed/4567889/>, <embed src="www.example1.com/embed/789456/>, <embed src="www.example.com/embed/123456/>]
但正如你所看到的,“嵌入”这个词也在 url 本身中,所以我必须确保不要触及这个词的使用。我试过 replace()、trip()、for 循环,都没有运气。有人对我如何实现这一点有任何想法吗?提前感谢您,希望每个人都保持健康!
解决方案
使用正则表达式
import re
lst = ["<embed>www.example.com/embed/4657889</embed>",
"<embed>www.example1.com/embed/789465/</embed>",
"<embed>www.example2.com/embed/132456/</embed>"]
rx = re.compile(r'<embed>(.+?)</embed>')
new_lst = [rx.sub(r'<embed src="\1">', item) for item in lst]
print(new_lst)
哪个产量
['<embed src="www.example.com/embed/4657889">', '<embed src="www.example1.com/embed/789465/">', '<embed src="www.example2.com/embed/132456/">']