python正则表达式re模块sub替换函数详细使用方法

2023-02-28 00:00:00 函数 替换 使用方法

在 Python 中,可以使用 re 模块的 sub 函数来替换匹配到的字符串。sub 函数的第一个参数是用来匹配的正则表达式,第二个参数是替换字符串,第三个参数是要匹配的原始字符串。

以下是一个示例代码:

import re

text = "hello world"
pattern = r"world"
new_text = re.sub(pattern, "python", text)
print(new_text)

运行上述代码,将输出替换后的字符串:

hello python

上面的代码中,使用正则表达式 world 匹配字符串 text 中的 world 字符串,并用 python 字符串替换它。使用 sub 函数返回替换后的新字符串。

除了使用字符串来替换匹配到的内容,也可以使用一个函数来替换。这个函数的参数是一个 match 对象,返回一个新的字符串。以下是一个使用函数替换的示例代码:

import re

def upper_case(match):
    return match.group(0).upper()

text = "hello world"
pattern = r"world"
new_text = re.sub(pattern, upper_case, text)
print(new_text)

运行上述代码,将输出替换后的字符串:

hello WORLD

在上面的代码中,使用 upper_case 函数来将匹配到的字符串转换为大写,并将其返回。这个函数将会被 sub 函数调用,对每一个匹配到的字符串进行替换。

在正则表达式中,可以使用圆括号来创建捕获组。在使用函数替换时,函数的参数将会是一个 match 对象,这个对象包含了匹配到的结果和捕获组的内容。可以通过 match.group(n) 方法来获取第 n 个捕获组的内容。例如:

import re

def replace(match):
    return match.group(1) + match.group(2).upper()

text = "hello world"
pattern = r"(hello) (world)"
new_text = re.sub(pattern, replace, text)
print(new_text)

在上面的代码中,使用正则表达式 "(hello) (world)" 来匹配 text 中的 hello world,并将其拆分为两个捕获组。使用 replace 函数来替换匹配到的内容,这个函数将返回第一个捕获组和第二个捕获组的内容,后者转换为大写字母。这将输出:

hello WORLD

相关文章