python正则表达式re模块sub替换函数详细使用方法
在 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
相关文章