Python 中的正規表示式替換方法
Muhammad Waiz Khan
2021年4月29日
在本教程中,我們將研究 re.sub()
方法的用法和功能,並研究示例程式碼。Python 的 re
模組使用正規表示式為 Unicode 和 8 位字串提供了各種功能。功能包括字串替換,拆分和匹配等。
在 Python 中使用 re.sub()
方法進行正規表示式替換
re.sub(pattern, repl, string, count=0)
方法以 string
作為輸入,並將 pattern
的最左邊出現的內容替換為 repl
。如果在 string
引數中未找到 pattern
,則返回 string
,而無需進行任何更改。
pattern
引數必須採用正規表示式的形式。repl
可以是字串或函式。如果 repl
引數是一個字串,則 string
中的 pattern
將被 repl
字串替換。如果將函式作為 repl
引數傳遞,則一旦發現 pattern
就會呼叫該函式。該函式以 matchObject
作為輸入並返回替換字串。如果找到匹配項,則 matchObject
的值將等於 True
,否則,其值將等於 None
。
可選的 count
參數列示我們要在 string
中替換的 pattern
的最大出現次數。
下面的示例程式碼演示瞭如何使用 re.sub()
方法使用正規表示式替換字串中的某些模式:
import re
string = "Hello! How are you?! Where have you been?!"
new_string = re.sub(r"""[!?'".<>(){}@%&*/[/]""", " ", string)
print(new_string)
輸出:
Hello How are you Where have you been
上面的程式碼示例刪除了 pattern
引數中指定的帶有空格的字元,這是上面程式碼中的 repl
引數。
我們還可以將函式用作 repl
引數來執行相同的任務,只要發現 repl
引數出現就返回 " "
,如以下示例程式碼所示:
import re
def repl_func(match):
if match == True:
return " "
string = "Hello! How are you?! Where have you been?!"
new_string = re.sub(r"""[!?'".<>(){}@%&*/[/]""", repl_func, string)
print(new_string)
輸出:
Hello How are you Where have you been