碼迷,mamicode.com
首頁 > 編程語言 > 詳細

python字符串替換之re.sub()

時間:2018-06-07 17:53:42      閱讀:4224      評論:0      收藏:0      [點我收藏+]

標簽:turn   nihao   返回   pattern   sub   匹配   最大   err   return   

re.sub(patternreplstringcount=0flags=0)

pattern可以是一個字符串也可以是一個正則,用于匹配要替換的字符,如果不寫,字符串不做修改。\1 代表第一個分組

repl是將會被替換的值,repl可以是字符串也可以是一個方法。如果是一個字符串,反斜杠會被處理為逃逸字符,如\n會被替換為換行,等等。repl如果是一個function,每一個被匹配到的字段串執行替換函數。

      \g<1> 代表前面pattern里面第一個分組,可以簡寫為\1,\g<0>代表前面pattern匹配到的所有字符串。

 count是pattern被替換的最大次數,默認是0會替換所有。有時候可能只想替換一部分,可以用到count

實例1:

a = re.sub(r‘hello‘, ‘i love the‘, ‘hello world‘)
print(a)
‘i love the world‘ #hello world里面的hello被 i love the替換

實例2:

>>> a = re.sub(r‘(\d+)‘, ‘hello‘, ‘my numer is 400 and door num is 200‘)
>>> a
‘my numer is hello and door num is hello‘ #數字400 和 200 被hello替換

實例3:

a = re.sub(r‘hello (\w+), nihao \1‘, r‘emma‘,‘hello sherry, nihao sherry‘)
>>> a
‘emma‘  #\1代表第一個分組的值即sherry,因為有兩個sherry,所以用\1可以指代第二個,這樣整個字符串被emma替換

示例4:

>>> a = re.sub(‘(\d{4})-(\d{2})-(\d{2})‘, r‘\2-\3-\1‘, ‘2018-06-07‘)
>>> a
‘06-07-2018‘
>>> a = re.sub(‘(\d{4})-(\d{2})-(\d{2})‘, r‘\g<2>-\g<3>-\g<1>‘, ‘2018-06-07‘)
>>> a
‘06-07-2018‘  #\2 和 \g<2> 指代的的都是前面的第二個分組

示例5:

import re
def replace_num(str):
	numDict = {‘0‘:‘〇‘,‘1‘:‘一‘,‘2‘:‘二‘,‘3‘:‘三‘,‘4‘:‘四‘,‘5‘:‘五‘,‘6‘:‘六‘,‘7‘:‘七‘,‘8‘:‘八‘,‘9‘:‘九‘}
	print(str.group())
	return numDict[str.group()]
my_str = ‘2018年6月7號‘
a = re.sub(r‘(\d)‘, replace_num, my_str)
print(a)  #每次匹配一個數字,執行函數,獲取替換后的值

re.subn(patternreplstringcount=0flags=0)

 

和sub()函數一樣,只是返回的是一個tuple,替換后的字符串和替換的個數  

 

 

 

python字符串替換之re.sub()

標簽:turn   nihao   返回   pattern   sub   匹配   最大   err   return极速时时彩走势图   

极速时时彩走势图原文地址:https://www.cnblogs.com/guoxueyuan/p/9151678.html

(0)
(0)
   
舉報
評論 一句話評論(0
0條  
登錄后才能評論!
           
? 2014 mamicode.com 版權所有 京ICP備13008772號-2
迷上了代碼!