首页 > 解决方案 > 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 循环,都没有运气。有人对我如何实现这一点有任何想法吗?提前感谢您,希望每个人都保持健康!

标签: pythonreplacestrip

解决方案


使用正则表达式

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/">']

推荐阅读