Python 中的正規表示式替換方法

Muhammad Waiz Khan 2021年4月29日
Python 中的正規表示式替換方法

在本教程中,我們將研究 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

相關文章 - Python Regex