十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
sub出現(xiàn)于re庫,用法是re.sub(pattern, repl, string, count=0, flags=0)
目前成都創(chuàng)新互聯(lián)公司已為超過千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)頁空間、綿陽服務(wù)器托管、企業(yè)網(wǎng)站設(shè)計(jì)、屯昌網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
實(shí)例,re.sub(r'e','a','def',count = 1)
daf
相對(duì)于replace來說,該方法功能更強(qiáng),但是運(yùn)行效率更低。
replace是自帶函數(shù),用法是str.replace(old, new[, max])
實(shí)例,'abbc'.replace('b','a',1)
aabc
對(duì)比re.sub來說,replace沒有正則的效果,但是運(yùn)行效率更佳。請(qǐng)?jiān)趯?shí)際應(yīng)用中根據(jù)需求來定制使用方法,不要浪費(fèi)資源。
第一個(gè)問題,你搞錯(cuò)了,不是逗號(hào),是兩個(gè)空字符串,返回的結(jié)果列比里其實(shí)有三個(gè)元素。雖然看起來很像兩個(gè)。所以,它找到了符合條件的三個(gè)對(duì)象,也就是['section{First', '', ''] 。右大括號(hào)的位置是理解的關(guān)鍵。
第二個(gè)問題。sub方法是用你指定的字符串替換‘匹配’上的字符串。前面我們匹配上了3個(gè)位置,將它們逐一替換,就得到了'subsection{}subsection{}}subsection{}'。注意其中那個(gè)蹦單的右大括號(hào)。
第三個(gè)問題。你使用了sub的分組引用功能。它在替換的同時(shí)會(huì)用匹配上的內(nèi)容替換‘\1’。你在前面匹配上了一個(gè)字符串和兩個(gè)空格,將它們依次代入問題二結(jié)果中的三對(duì)大括號(hào)就能得到最終結(jié)果'subsection{section{First}subsection{}}subsection{}'
更多內(nèi)容參考正則表達(dá)式和re模塊
sub()方法有兩個(gè)參數(shù),第一個(gè)是用來替換的字符串,第二個(gè)是目標(biāo)字符串,將用第一個(gè)參數(shù)替換第二個(gè)參數(shù)中的所有匹配項(xiàng)。
例1:
在使用分組的情況下,用\1,\2,\3,...來指稱各分組。
例2:
這個(gè)例子中,Agent (\w)\w*匹配前面第一個(gè)單詞是Agent而第二個(gè)是任意單詞的項(xiàng),第二個(gè)單詞的第一個(gè)字符是其第一個(gè)分組(這里只有一個(gè)分組)。在替換時(shí),這個(gè)字符被保留下來,其余被替換為****。
改成
print re.sub("\w","*",_string3)
另外r作用是取消特殊意思
比如r"\a"則匹配\a的