python-3.x 替换字符串减法的更好方法[duplicate]

sg2wtvxw  于 2023-03-20  发布在  Python
关注(0)|答案(1)|浏览(137)

此问题在此处已有答案

(9个答案)
4天前关闭。
我刚接触python,正在寻找一个更好或更快的解决方案,我用这个解决方案替换了string中的substring。
在本例中,将替换url字符串中的https://www.site1.com//

site2 = 'https://www.site2.com/'
url = 'https://www.site1.com//vehicles/2023/Ford/F-150/Calgary/AB/57506598/?sale_class=New'

output = site2 + url[url.index('vehicles/'):] 
print(output) # https://www.site2.com/vehicles/2023/Ford/F-150/Calgary/AB/57506598/?sale_class=N

这是一个更快的解决方案吗?有更好的吗?也许使用regex怎么样?

ws51t4hk

ws51t4hk1#

当操作URL这样的结构时,最好使用专门设计的工具,而不是将它们视为字符串。
在本例中,您需要将主机(netloc)更改为www.site2.com
所以...

from urllib.parse import urlparse, urlunparse

new_site = 'www.site2.com'
url = 'https://www.site1.com//vehicles/2023/Ford/F-150/Calgary/AB/57506598/?sale_class=New'
scheme, _, path, params, query, fragment = urlparse(url)
new_url = urlunparse((scheme, new_site, path.replace('//', '/'), params, query, fragment))
print(new_url)

输出:

https://www.site2.com/vehicles/2023/Ford/F-150/Calgary/AB/57506598/?sale_class=New

相关问题