Python 中的 re.sub() 函数

2024 年 8 月 29 日 | 阅读 3 分钟

re.sub() 是 Python 中 re (正则表达式) 模块中的一个函数。它用于将字符串中所有匹配到的模式替换为新的字符串。

该函数接受三个参数:

  1. pattern: 要在输入字符串中搜索的正则表达式模式。
  2. repl: 用于替换匹配到的模式的字符串。
  3. string: 要执行搜索和替换的输入字符串。

该函数返回一个新字符串,其中所有匹配到的模式都已被新字符串替换。

示例

输出

Hello, Universe!

在此示例中,函数 re.sub() 将输入字符串 "Hello, World!" 中的所有 "World" 字符串替换为 "Universe" 字符串。

这对于移除特定字符、用同义词替换特定单词或转换字符串中字符的大小写等任务非常有用。

示例

输出

1, 2, 3, 4, , 5, 6, , 7, 8, 9,

在此示例中,函数 re.sub() 将所有 "0" 字符串替换为空字符串,从而有效地删除了输入字符串中的所有数字 0

此外,re.sub() 允许您在 pattern 参数中使用捕获组来执行更复杂的文本替换操作。捕获组是模式中匹配为单个单元的一组字符,可以使用 \1, \2, 等语法在替换字符串中引用它们。

示例

这是一个使用 re.sub() 来替换字符串中的所有特定模式,并保留部分原始字符串的示例:

输出

banana apple, date cherry

在此示例中,函数 re.sub() 将模式 "(\w+), (\w+)" 的所有匹配项替换为字符串 "\\2 \\1",这是交换两个匹配到的捕获组的结果。捕获组使用模式中的括号 () 指定,并在替换字符串中使用 \1\2 语法进行引用。

示例

这是一个使用 re.sub() 将字符串中的所有字符转换为大写的示例:

输出

HELLO WORLD!

在此示例中,函数 re.sub() 将模式 "(\w)" 的所有匹配项替换为匹配字符的大写版本。捕获组 (\w) 用于匹配输入字符串中的单个字符,并使用 upper() 方法将每个字符转换为大写。替换 "\\1".upper() 将匹配的字符与大写转换结合起来,从而得到一个所有字符都为大写的输出字符串。