Python re.sub() 方法

Python re 模块 Python re 模块


re.sub() 是 Python re 模块中用于替换匹配项的函数。

它会在字符串中查找所有匹配的子串,并将其替换为指定的内容。

单词释义sub 是 substitute (替换) 的缩写。


基本语法与参数

语法格式

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

参数说明

  • pattern:要匹配的正则表达式
  • repl:替换文本,可以是字符串或函数
  • string:原始字符串
  • count:替换的最大次数,0表示全部替换
  • flags:正则表达式标志

函数说明

  • 返回值: 返回替换后的新字符串。

实例

示例 1:基础替换

实例

import re

text = "Python is good, Python is great"

# 把 Python 替换为 Java
result = re.sub(r'Python', 'Java', text)

print(result)

运行结果预期:

Java is good, Java is great

示例 2:替换指定次数

实例

import re

text = "Python is good, Python is great"

# 只替换第一个
result = re.sub(r'Python', 'Java', text, count=1)

print(result)

运行结果预期:

Java is good, Python is great

示例 3:使用正则表达式替换

实例

import re

text = "我的手机号是 138-1234-5678"

# 把手机号中间4位替换为 ****
result = re.sub(r'\d{4}', '****', text)

print(result)

运行结果预期:

我的手机号是 138-****-5678

示例 4:使用分组引用

实例

import re

text = "2024-04-02"

# 交换年月日的顺序
result = re.sub(r'(\d{4})-(\d{2})-(\d{2})', r'\3/\2/\1', text)

print(result)

运行结果预期:

02/04/2024

示例 5:使用函数作为替换内容

实例

import re

text = "苹果3个,香蕉5个,橙子8个"

# 把数字替换为数字+1
def add_one(match):
    return str(int(match.group()) + 1)

result = re.sub(r'\d+', add_one, text)

print(result)

运行结果预期:

苹果4个,香蕉6个,橙子9个

Python re 模块 Python re 模块