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不同的地方。