re是正則的表達(dá)式,sub是substitute表示替換
re.sub是相對(duì)復(fù)雜點(diǎn)的替換
舉個(gè)例子:
inputs = "hello 11 word 11"
想11變成22
replacestr = inputs.replace("11","22)
但是如果是inputs = “hello 123 world 345”
想把數(shù)字都替換成222
就需要用正則替換
re.sub的參數(shù):有五個(gè)參數(shù)
re.sub(pattern, repl, string, count=0, flags=0)
其中三個(gè)必選參數(shù):pattern, repl, string
兩個(gè)可選參數(shù):count, flags
第一個(gè):pattern
pattern,表示正則中的模式字符串。
反斜杠加數(shù)字(\N),則對(duì)應(yīng)著匹配的組(matched group)?
比如\6败富,表示匹配前面pattern中的第6個(gè)group?
第二個(gè)參數(shù):repl
repl枉昏,就是replacement绑谣,被替換,的字符串的意思。
repl可以是字符串罩息,也可以是函數(shù)。
repl是字符串
如果repl是字符串的話(huà)个扰,其中的任何反斜杠轉(zhuǎn)義字符瓷炮,都會(huì)被處理的。
即:
\n:會(huì)被處理為對(duì)應(yīng)的換行符递宅;?
\r:會(huì)被處理為回車(chē)符娘香;?
其他不能識(shí)別的轉(zhuǎn)移字符,則只是被識(shí)別為普通的字符:?
比如\j办龄,會(huì)被處理為j這個(gè)字母本身烘绽;?
反斜杠加g以及中括號(hào)內(nèi)一個(gè)名字,即:\g俐填,對(duì)應(yīng)著命了名的組安接,named group
第三個(gè)參數(shù):string
string,即表示要被處理英融,要被替換的那個(gè)string字符串盏檐。
沒(méi)什么特殊要說(shuō)明。
第四個(gè)參數(shù):count
舉例說(shuō)明:
繼續(xù)之前的例子驶悟,假如對(duì)于匹配到的內(nèi)容胡野,只處理其中一部分。
比如對(duì)于:
hello 123 world 456 nihao 789
1
只是像要處理前面兩個(gè)數(shù)字:123,456痕鳍,分別給他們加111硫豆,而不處理789,
那么就可以寫(xiě)成:
replacedStr = re.sub("(?P\d+)", _add111, inputStr, 2);