Python字符串替換的3種方法
來(lái)源:博客園     時(shí)間:2023-05-18 17:07:42

Python字符串替換筆記主要展示了如何在Python中替換字符串。Python中有以下幾種替換字符串的方法,本文主要介紹前三種。

  • replace方法(常用)
  • translate方法
  • re.sub方法
  • 字符串切片(根據(jù)Python字符串切片方法替換字符)

1.replace方法

Python replace方法把字符串中的old(舊字符串) 替換成new(新字符串),如果指定第三個(gè)參數(shù)max,則設(shè)置替換次數(shù)不超過(guò) max 次。


(資料圖)

str.replace(old, new[, max])

示例1

在該示例中,出現(xiàn)的兩個(gè)單詞Hello都被替換為Hi。

#原字符msg = "Hello world! Hello Python!" # 替換字符,字符串直接調(diào)用replace方法msg2 = msg.replace("Hello", "Hi") print(msg2)#輸出Hi world! Hi Python!

示例2

可以直接str.replace方法。它將我們進(jìn)行替換的字符串作為第一個(gè)參數(shù)。結(jié)果和示例1一樣。

msg = "Hello world! Hello Python!" msg2 = str.replace(msg, "Hello", "Hi") print(msg2)#輸出Hi world! Hi Python!

示例3

我們可以用換行符替換每個(gè)逗號(hào),并設(shè)置替換次數(shù)

data = "1,2,3,4,5" # 替換次數(shù)為3次data2 = data.replace(",", "\n", 3) print(data2)#輸出1234,5

示例4

在該示例中,我們替換最后一次出現(xiàn)的單詞Hello。需要結(jié)合Python rfind()方法。rfind()方法是指返回字符串最后一次出現(xiàn)的位置。

msg = "Hello world! Hello Python!" # Python rfind()返回字符串最后一次出現(xiàn)的位置idx = msg.rfind("Hello")print(idx) # 提取前一部分字符不替換,取后一部分字符進(jìn)行替換# 這里用到了字符串切片的方式msg2 = msg[:idx] + str.replace( msg[idx:] , "Hello", "Hi") print(msg2)#輸出13Hello world! Hi Python!

示例5

我們可以將replace方法鏈接起來(lái)進(jìn)行多次替換。

msg = "Hello world! Hello Python!" msg2 = msg.replace("Hello", "Hi").replace("!",".") print(msg2)#輸出Hi world. Hi Python.

2.translate方法

Python的translate函數(shù)與replace函數(shù)一樣,用于替換字符串的一部分。Translate只能處理單個(gè)字符,但translate可以同時(shí)進(jìn)行多個(gè)替換任務(wù)。在使用translate函數(shù)進(jìn)行轉(zhuǎn)換之前。需要一個(gè)翻譯表table,翻譯表用于表示字符的替換關(guān)系,這個(gè)翻譯表可以通過(guò)maketrans()方法獲得。這個(gè)翻譯表可翻譯字符數(shù)為256,翻譯表中的字符都要包含在ASCII碼表(含擴(kuò)展)中。translate()方法語(yǔ)法為:

str.translate(table)

示例1

msg = "Hello world! Hello Python!" # intab中的字符與outtab中的字符一一對(duì)應(yīng)intab = "aeiou"outtab = "12345"# 制作翻譯表trantab = str.maketrans(intab, outtab)   # trantab中的字符都會(huì)用ASCII碼表示print(trantab)#Python小白學(xué)習(xí)交流群:711312441 msg2 = msg.translate(trantab) print(msg2)#輸出{97: 49, 101: 50, 105: 51, 111: 52, 117: 53}H2ll4 w4rld! H2ll4 Pyth4n!

3.re.sub 替換字符串

我們可以使用正則表達(dá)式來(lái)替換字符串。Python的re庫(kù)就是常用的正則表達(dá)式匹配庫(kù)(建議學(xué)一學(xué)很有用)。re庫(kù)使用見(jiàn)模式匹配與正則表達(dá)式筆記。這里主要使用re.sub函數(shù)替換字符串。re.sub()方法需要傳入兩個(gè)參數(shù)。第一個(gè)參數(shù)是一個(gè)字符串,用于取代發(fā)現(xiàn)的匹配。第二個(gè)參數(shù)是一個(gè)字符串,即正則表達(dá)式。sub()方法返回替換完成后的字符串。

示例1

import re msg = "Hello world! Hello Python!"# 設(shè)置要替換的字符namesRegex = re.compile(r"Hello")# 用"Hi"替換msg中已經(jīng)設(shè)置好要替換的字符namesRegex.sub("Hi", msg) #輸出 "Hi world! Hi Python!"

關(guān)鍵詞: