Python - AI 助手

Python re.subn() 方法



Python 的 re.subn() 方法类似于 re.sub() 方法,但它返回修改后的字符串和所做替换的次数。它使用正则表达式模式对字符串执行搜索和替换操作。修改后的字符串(包含替换内容)与替换次数一起返回。

当我们需要知道除了获取修改后的字符串之外还进行了多少次替换时,此方法很有用。此方法通常在我们既需要修改后的字符串又需要替换次数以进行进一步处理时使用。

语法

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

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

参数

以下是 python re.subn() 方法的参数:

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

返回值

此方法返回匹配对象迭代器和替换次数。

示例 1

以下是 python re.subn() 方法的基本示例,其中字符串中的所有数字序列都替换为字符串“number”,并且还返回所做替换的次数:

import re

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

输出

There are number apples and number oranges.
2

示例 2

此示例在模式和替换字符串中都使用捕获组来重新排列日期格式。这里只进行了一次替换,所以计数为 1。

import re

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

输出

Date: 01/01/2022
1

示例 3

在此示例中,函数 square 用作替换。它对在字符串中找到的每个数字匹配项进行平方,并返回替换次数为 5:

import re

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

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

输出

Numbers: 1 4 9 16 25
5
python_modules.htm
广告