吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1296|回复: 5
收起左侧

[求助] 大佬指点下,我想替换字符串中的链接,替换到一半不会了

[复制链接]
rong1667 发表于 2022-3-19 17:13
本帖最后由 rong1667 于 2022-3-19 17:26 编辑

[Python] 纯文本查看 复制代码
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?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+', str_1) #找查出str1 的链接[color=#d4d4d4][backcolor=rgb(30, 30, 30)][font=Consolas, &quot]

打印出来是列表形式
如果直接用替换的话 re.sub 发现不能依次替换
没思路了 来求助各位大佬!拜托了 拜托了

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

平淡最真 发表于 2022-3-19 17:31
for i in range(4):
    str_2[i]=url_ys[i]
print(str_2)
 楼主| rong1667 发表于 2022-3-19 18:19
平淡最真 发表于 2022-3-19 17:31
for i in range(4):
    str_2=url_ys
print(str_2)

厉害啊哥,解决了
[Python] 纯文本查看 复制代码
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[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+', str1)

for i in range(len(url_ys)):
    str1 = re.sub(url_ys[i],str2[i],str1)

print(str1)
YuanFang0w0 发表于 2022-3-19 18:24
n = 0
for i in url_ys:
    new_str1 = str1.replace(i, str2[n])
    n += 1
print(new_str1)
思路:正则查找为一个列表,遍历正则查找出来的列表,每一个i对应的是str1中的要替换的字符串,用replace方法,替换str1中对应这个i的字符串为str2列表中对应当前索引值为n的值,并将替换后的str1赋值给new_str1,最后输出new_str1看看结果就知道了。
asd5478 发表于 2022-3-19 18:45
for i in range(4):

        str1=str1.replace(url_ys[i],str2[i])
grekevin 发表于 2022-3-19 21:40
[Python] 纯文本查看 复制代码
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[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+')
url_ys = patter.sub('{}', str1).format(*str2)

print(url_ys)
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 14:27

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表