溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何在python中使用re.sub()方法替換字符串

發(fā)布時間:2021-05-13 17:33:48 來源:億速云 閱讀:576 作者:Leah 欄目:開發(fā)技術

如何在python中使用re.sub()方法替換字符串?相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

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

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

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

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

實例1:

a = re.sub(r'hello', 'i love the', 'hello world')
print(a)<br data-filtered="filtered">'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' #數(shù)字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) #每次匹配一個數(shù)字,執(zhí)行函數(shù),獲取替換后的值

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

python的數(shù)據(jù)類型有哪些?

python的數(shù)據(jù)類型:1. 數(shù)字類型,包括int(整型)、long(長整型)和float(浮點型)。2.字符串,分別是str類型和unicode類型。3.布爾型,Python布爾類型也是用于邏輯運算,有兩個值:True(真)和False(假)。4.列表,列表是Python中使用最頻繁的數(shù)據(jù)類型,集合中可以放任何數(shù)據(jù)類型。5. 元組,元組用”()”標識,內(nèi)部元素用逗號隔開。6. 字典,字典是一種鍵值對的集合。7. 集合,集合是一個無序的、不重復的數(shù)據(jù)組合。

看完上述內(nèi)容,你們掌握如何在python中使用re.sub()方法替換字符串的方法了嗎?如果還想學到更多技能或想了解更多相關內(nèi)容,歡迎關注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI