python之替換函數

1. replace()

語法:
str.replace(old, new, max)
參數:
old – 將被替換的子字符串。
new – 新字符串,用於替換old子字符串。
max – 可選字符串, 替換不超過 max 次。(默認替換全部)
示例:

# 這個用起來最簡單
str = 'abc abc aaa abcde 12345'
print(str.replace('abc','OK'))
print(str.replace('abc','OK',1))
OK OK aaa OKde 12345
OK abc aaa abcde 12345

2. re.sub()

  re.sub()可以實現更復雜的替換,可用於正則替換
語法:
re.sub(pattern, repl, string, count=0, flags=0)
參數:
三個必選參數:
 pattern:正則中的模式字符串
 repl:被替換的內容,可以是字符串也可以是函數。(如果repl是字符串的話,其中的任何反斜槓轉義字符,都會被處理的。)
 string:要被處理的字符串
兩個可選參數:
 count:要被處理的次數,默認替換所有
 flags:匹配模式,可以使用按位或‘|‘表示同時生效,也可以在正則表達式中指定。
     re.I忽略大小寫
     re.L表示特殊字符集\w,\W,\b,\B,\s,\S
     re.M表示多行模式
     re.S ‘.’包括換行符在內的任意字符
     re.U表示特殊字符集\w,\W,\b,\B,\d,\D,\s,\D

# 這個用起來比較複雜
s = 'abc abc aaa abcde 123 45'

new_s = re.sub('\d+','*',s)
print(new_s)
abc abc aaa abcde * *

3.translate()

  Python translate() 方法根據參數table給出的表(包含 256 個字符)轉換字符串的字符, 要過濾掉的字符放到 del 參數中。
語法:
str.translate(table[, deletechars]);
參數:
table – 翻譯表,翻譯表是通過maketrans方法轉換而來。
deletechars – 字符串中要過濾的字符列表。
示例:

s = 'abc abc aaa abcde 12345'

t = str.maketrans('abc','123')
new_s = s.translate(t)
print(new_s)
123 123 111 123de 12345

  這裏有個問題要注意一下,translate實際上是一個翻譯的方法,雖然拿來做替換也是無可厚非的,不過要注意的是它的元素是一一對應的,因此用於轉換也是針對單個元素的,即使abc不連在一起,只要發現其中一個就會轉換成對應的新元素,這一點就是和replace不同的地方。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章