在Python中实现全部替换操作的核心方法是使用字符串的replace()
和正则表达式的re.sub()
,前者适合简单固定文本替换,后者支持复杂模式匹配。还可通过字符串拼接、列表推导式等方法灵活处理不同场景的替换需求。
-
replace()
方法
语法为str.replace(old, new, count)
,默认替换所有匹配项。例如:python复制
text = "Hello World! World is big." print(text.replace("World", "Python")) # 输出: Hello Python! Python is big.
若需限制替换次数,可通过
count
参数控制,如count=1
仅替换首次匹配。 -
正则表达式
re.sub()
适用于动态模式或批量规则替换,如将字符串中所有数字替换为#
:python复制
import re text = "123abc456" print(re.sub(r'\d', '#', text)) # 输出: ###abc###
支持回调函数,实现更复杂的逻辑处理。
-
字符串拼接与切片
通过split()
和join()
组合实现替换,例如将分隔符逗号改为竖线:python复制
text = "a,b,c" print("|".join(text.split(","))) # 输出: a|b|c
-
列表元素的批量替换
使用列表推导式或map()
快速修改列表内容,如将列表中所有3替换为0:python复制
nums = [1, 3, 5, 3] nums = [0 if x == 3 else x for x in nums] # 输出: [1, 0, 5, 0]
-
文件内容的全局替换
结合文件读写与替换方法,批量修改文件内容:python复制
with open("file.txt", "r") as f: content = f.read().replace("old", "new") with open("file.txt", "w") as f: f.write(content)
根据需求选择合适方法:简单替换用replace()
,模式匹配用re.sub()
,结构化数据用列表或字典操作,注意字符串不可变性和性能优化即可高效完成任务。