Python re.sub() 方法
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)
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)
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)
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)
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)
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 模块
点我分享笔记