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