盤點一個Python中字符串替換的問題
回復(fù)“資源”即可獲贈Python學(xué)習(xí)資料
大家好,我是皮皮。
一、前言
前幾天在Python白銀交流群【凡人不煩人】問了一道Python字符串替換的題目,如下圖所示。

其實這個地方倒是可以用字符串替換或者正則表達式替換的方法來解決,方法還是很多的。
二、實現(xiàn)過程
方法一
這里【dcpeng】給出了一個方法,如下所示:
new_url?=?url_prefix.split('1426441406252113897')[0]?+?'1426441406252113897/'?+?'1918f589f9269a880692fa44514ffb95.txt'
print(new_url)
結(jié)果如下圖所示:
方法二
后來【dcpeng】又給了一個方法,如下所示:
import?re
url_prefix?=?'http://p1.ocs.hjfile.cn/10002/res/1426441406252113897/623d3202b638f80eeeba700b01155fb5.txt'
new_url?=?re.split(r'7/(.*?).txt',?url_prefix)[0]?+?'/1918f589f9269a880692fa44514ffb95.txt'
print(new_url)
結(jié)果如下圖所示:

方法三
前面兩個方法都是需要進行字符串拼接的,有沒有什么辦法不拼接呢?答案是有的,一起來看看【dcpeng】給的一個代碼,如下所示:
import?re
url_prefix?=?'http://p1.ocs.hjfile.cn/10002/res/1426441406252113897/623d3202b638f80eeeba700b01155fb5.txt'
result?=?re.findall(r'7/(.*?).txt',?url_prefix)
print(result)
final_result?=?url_prefix.replace(result[0],?'1918f589f9269a880692fa44514ffb95')
print(final_result)
結(jié)果如下圖所示:
雖然這個確實可以解決該問題,但是這里會有一個小問題,就是健壯性不強,假如那個位置更改了,變成了不是7,就獲取不到對應(yīng)的數(shù)據(jù)了。
方法四
后來【瑜亮老師】用一個rsplit,然后字符串拼接就搞定了。代碼如下所示:
url_prefix?=?'http://p1.ocs.hjfile.cn/10002/res/1426441406252113897/623d3202b638f80eeeba700b01155fb5.txt'
tp?=?url_prefix.rsplit('/',?1)
new?=?'1918f589f9269a880692fa44514ffb95'
result?=?f'{tp[0]}/{new}.txt'
print(result)
結(jié)果如下圖所示:
這里【瑜亮老師】多做了一些拓展,如下所示:

方法五
后來【月神】給了一個正則表達式的re.sub()方法,代碼如下所示:
import?re
picture_url?=?'http://p1.ocs.hjfile.cn/10002/res/1426441406252113897/623d3202b638f80eeeba700b01155fb5.txt'
new?=?'1918f589f9269a880692fa44514ffb95'
print(picture_url)
re.sub('(res/.*?)/.*?(\.txt)',?fr'\g<1>/{new}\g<2>',?picture_url)
結(jié)果如下圖所示:
不得不承認,這個正則表達式還是寫的挺復(fù)雜的,有點難懂。
三、總結(jié)
大家好,我是皮皮。這篇文章主要盤點了一道Python中字符串替換的問題,文中針對該問題給出了具體的解析和代碼演示,一共5個方法,幫助粉絲順利解決了問題。
最后感謝粉絲【凡人不煩人】提問,感謝【月神】、【瑜亮老師】、【dcpeng】給出的代碼和具體解析,感謝【貓藥師Kelly】、【冫馬讠成】、【甯同學(xué)】、【哈佛在等我呢~】等人參與學(xué)習(xí)交流。
小伙伴們,快快用實踐一下吧!如果在學(xué)習(xí)過程中,有遇到任何問題,歡迎加我好友,我拉你進Python學(xué)習(xí)交流群共同探討學(xué)習(xí)。
-------------------?End?-------------------
往期精彩文章推薦:

歡迎大家點贊,留言,轉(zhuǎn)發(fā),轉(zhuǎn)載,感謝大家的相伴與支持
想加入Python學(xué)習(xí)群請在后臺回復(fù)【入群】
萬水千山總是情,點個【在看】行不行
