re.sub()返回替换后的新字符串,re.subn()返回(新字符串,替换次数)元组;前者适用于只需结果的场景,后者适合需统计或校验替换量的情况。

Python里用正则替换文本,主要靠 re.sub() 和 re.subn() 这两个函数。它们功能相似,但返回值不同——这是最核心的区别。
它按正则模式查找匹配项,并用指定内容替换,最终只返回处理完的字符串,不告诉你替换了几次、在哪替换了。
re.sub(pattern, repl, string, count=0, flags=0)
count 参数可限制最多替换几次(默认全部)例子:import retext = "价格:100元,折扣后:85元"new_text = re.sub(r"\d+元", "XX元", text)print(new_text) # 输出:价格:XX元,折扣后:XX元
它做的是和 sub 完全一样的替换操作,但额外多返回一个整数——本次成功替换了几次。
立即学习“Python免费学习笔记(深入)”;
re.subn(pattern, repl, string, count=0, flags=0)
(new_string, number_of_subs)
例子:result, n = re.subn(r"\d+元", "XX元", text)print(result) # 价格:XX元,折扣后:XX元print(n) # 2
sub
subn
sub 更简洁;想避免再调一次 len(re.findall(...)) 统计?subn 更高效如果同一正则反复使用(比如在循环里替换),建议先用 re.compile() 编译,再调 sub 或 subn,速度更快、也更清晰:
pattern = re.compile(r"\b\d+\b")text = "订单号123,金额456,ID789"result, count = pattern.subn("###", text)以上就是Python替换文本怎么做_sub与subn区别讲解【技巧】的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号