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