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 = "https://www.cnblogs.com/python1111/archive/2023/05/18/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!'
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/552816.html
標籤:其他
下一篇:返回列表