Python字元串替換筆記主要展示瞭如何在Python中替換字元串。Python中有以下幾種替換字元串的方法,本文主要介紹前三種。 replace方法(常用) translate方法 re.sub方法 字元串切片(根據Python字元串切片方法替換字元) 1.replace方法 Python rep ...
Python字元串替換筆記主要展示瞭如何在Python中替換字元串。Python中有以下幾種替換字元串的方法,本文主要介紹前三種。
- replace方法(常用)
- translate方法
- re.sub方法
- 字元串切片(根據Python字元串切片方法替換字元)
1.replace方法
Python replace方法把字元串中的old(舊字元串) 替換成new(新字元串),如果指定第三個參數max,則設置替換次數不超過 max 次。
str.replace(old, new[, max])
示例1
在該示例中,出現的兩個單詞Hello都被替換為Hi。
#原字元
msg = "Hello world! Hello Python!"
# 替換字元,字元串直接調用replace方法
msg2 = msg.replace('Hello', 'Hi')
print(msg2)
#輸出
Hi world! Hi Python!
示例2
可以直接str.replace方法。它將我們進行替換的字元串作為第一個參數。結果和示例1一樣。
msg = "Hello world! Hello Python!"
msg2 = str.replace(msg, 'Hello', 'Hi')
print(msg2)
#輸出
Hi world! Hi Python!
示例3
我們可以用換行符替換每個逗號,並設置替換次數
data = "1,2,3,4,5"
# 替換次數為3次
data2 = data.replace(',', '\n', 3)
print(data2)
#輸出
1
2
3
4,5
示例4
在該示例中,我們替換最後一次出現的單詞Hello。需要結合Python rfind()方法。rfind()方法是指返回字元串最後一次出現的位置。
msg = "Hello world! Hello Python!"
# Python rfind()返回字元串最後一次出現的位置
idx = msg.rfind("Hello")
print(idx)
# 提取前一部分字元不替換,取後一部分字元進行替換
# 這裡用到了字元串切片的方式
msg2 = msg[:idx] + str.replace( msg[idx:] , "Hello", "Hi")
print(msg2)
#輸出
13
Hello world! Hi Python!
示例5
我們可以將replace方法鏈接起來進行多次替換。
msg = "Hello world! Hello Python!"
msg2 = msg.replace('Hello', 'Hi').replace('!','.')
print(msg2)
#輸出
Hi world. Hi Python.
2.translate方法
Python的translate函數與replace函數一樣,用於替換字元串的一部分。Translate只能處理單個字元,但translate可以同時進行多個替換任務。在使用translate函數進行轉換之前。需要一個翻譯表table,翻譯表用於表示字元的替換關係,這個翻譯表可以通過maketrans()方法獲得。這個翻譯表可翻譯字元數為256,翻譯表中的字元都要包含在ASCII碼表(含擴展)中。translate()方法語法為:
str.translate(table)
示例1
msg = "Hello world! Hello Python!"
# intab中的字元與outtab中的字元一一對應
intab = "aeiou"
outtab = "12345"
# 製作翻譯表
trantab = str.maketrans(intab, outtab)
# trantab中的字元都會用ASCII碼表示
print(trantab)
#Python小白學習交流群:711312441
msg2 = msg.translate(trantab)
print(msg2)
#輸出
{97: 49, 101: 50, 105: 51, 111: 52, 117: 53}
H2ll4 w4rld! H2ll4 Pyth4n!
3.re.sub 替換字元串
我們可以使用正則表達式來替換字元串。Python的re庫就是常用的正則表達式匹配庫(建議學一學很有用)。re庫使用見模式匹配與正則表達式筆記。這裡主要使用re.sub函數替換字元串。re.sub()方法需要傳入兩個參數。第一個參數是一個字元串,用於取代發現的匹配。第二個參數是一個字元串,即正則表達式。sub()方法返回替換完成後的字元串。
示例1
import re
msg = "Hello world! Hello Python!"
# 設置要替換的字元
namesRegex = re.compile(r'Hello')
# 用'Hi'替換msg中已經設置好要替換的字元
namesRegex.sub('Hi', msg)
#輸出
'Hi world! Hi Python!'