大佬指点下,我想替换字符串中的链接,替换到一半不会了
本帖最后由 rong1667 于 2022-3-19 17:26 编辑str1 = "数据库哈进口了https://www.1.com大厦数据库可垃圾啊https://asdas2.com大苏打撒的金\n卡金卡撒开了https://www.3.com \n的金卡金卡撒开了https://www.4.com大苏打撒"
str2 = ['https://a.com','https://b.cn','https://d.cc','https://adsa.com']
想要把链接str1中的链接一次替换成str2中的链接
我用正则找出来str1 的链接 发现是 列表
但是不知道怎么依次替换了
url_ys =re.findall('http?://(?:||[$-_@.&+]|[!*\(\),]|(?:%))+', str_1) #找查出str1 的链接
打印出来是列表形式
如果直接用替换的话 re.sub 发现不能依次替换
没思路了 来求助各位大佬!拜托了 拜托了 for i in range(4):
str_2=url_ys
print(str_2) 平淡最真 发表于 2022-3-19 17:31
for i in range(4):
str_2=url_ys
print(str_2)
厉害啊哥,解决了
str1 = "数据库哈进口了https://www.1.com大厦数据库可垃圾啊https://asdas2.com大苏打撒的金\n卡金卡撒开了https://www.3.com \n的金卡金卡撒开了https://www.4.com大苏打撒"
str2 = ['https://a.com','https://b.cn','https://d.cc','https://adsa.com']
url_ys = re.findall('http?://(?:||[$-_@.&+]|[!*\(\),]|(?:%))+', str1)
for i in range(len(url_ys)):
str1 = re.sub(url_ys,str2,str1)
print(str1) n = 0
for i in url_ys:
new_str1 = str1.replace(i, str2)
n += 1
print(new_str1)
思路:正则查找为一个列表,遍历正则查找出来的列表,每一个i对应的是str1中的要替换的字符串,用replace方法,替换str1中对应这个i的字符串为str2列表中对应当前索引值为n的值,并将替换后的str1赋值给new_str1,最后输出new_str1看看结果就知道了。 for i in range(4):
str1=str1.replace(url_ys,str2) import re
str1 = "数据库哈进口了https://www.1.com大厦数据库可垃圾啊https://asdas2.com大苏打撒的金\n卡金卡撒开了https://www.3.com \n的金卡金卡撒开了https://www.4.com大苏打撒"
str2 = ['https://a.com','https://b.cn','https://d.cc','https://adsa.com']
patter = re.compile(r'http?://(?:||[$-_@.&+]|[!*\(\),]|(?:%))+')
url_ys = patter.sub('{}', str1).format(*str2)
print(url_ys)
页:
[1]