Python - AI 助手

Python re.sub() 方法



Python 的 `re.sub()` 方法用于替换字符串中模式的出现。它搜索输入字符串中模式的所有不重叠匹配项,并将其替换为指定的替换字符串。

此方法有助于使用正则表达式对字符串执行全局搜索和替换操作。它提供了模式匹配和替换的灵活性,允许对文本数据进行复杂的转换。

使用 `count` 和 `flags` 可选参数,`re.sub()` 方法可以控制替换次数和匹配行为,使其成为 Python 中文本处理任务的通用工具。

语法

以下是 Python `re.sub()` 方法的语法和参数:

re.sub(pattern, repl, string, count=0, flags=0)

参数

以下是 Python `re.sub()` 方法的参数:

  • pattern: 要搜索的正则表达式模式。
  • repl: 替换字符串或为每个匹配项调用的函数。
  • string: 要执行替换的输入字符串。
  • count(可选): 要执行的最大替换次数。默认为 0,表示替换所有出现。
  • flags(可选): 用于修改匹配行为的标志(例如,re.IGNORECASE)。

返回值

此方法返回一个匹配对象迭代器。

示例 1

以下是 Python `re.sub()` 方法的基本示例,其中字符串中的所有数字序列都替换为字符串“number”:

import re

result = re.sub(r'\d+', 'number', 'Welcome to Tutorialspoint learning 2024')
print(result) 

输出

Welcome to Tutorialspoint learning number

示例 2

此示例在模式和替换字符串中都使用捕获组来重新排列日期格式。

import re

result = re.sub(r'(\d+)-(\d+)-(\d+)', r'\3/\2/\1', 'Date: 2022-01-01')
print(result)  

输出

Date: 01/01/2022

示例 3

在此示例中,函数“square”的输出用作替换。它对在字符串中找到的每个数字匹配项进行平方:

import re

def square(match):
    num = int(match.group())
    return str(num ** 2)

result = re.sub(r'\d+', square, 'Numbers: 1 2 3 4 5')
print(result)  

输出

Numbers: 1 4 9 16 25

示例 4

在此示例中,count=1 参数将替换次数限制为 1,因此仅替换第一个数字序列:

import re

result = re.sub(r'\d+', 'number', 'There are 123 apples and 456 oranges.', count=1)
print(result)  

输出

There are number apples and 456 oranges.
python_modules.htm
广告