python之替换函数

1. replace()

语法:
str.replace(old, new, max)
参数:
old – 将被替换的子字符串。
new – 新字符串,用于替换old子字符串。
max – 可选字符串, 替换不超过 max 次。(默认替换全部)
示例:

# 这个用起来最简单
str = 'abc abc aaa abcde 12345'
print(str.replace('abc','OK'))
print(str.replace('abc','OK',1))
OK OK aaa OKde 12345
OK abc aaa abcde 12345

2. re.sub()

  re.sub()可以实现更复杂的替换,可用于正则替换
语法:
re.sub(pattern, repl, string, count=0, flags=0)
参数:
三个必选参数:
 pattern:正则中的模式字符串
 repl:被替换的内容,可以是字符串也可以是函数。(如果repl是字符串的话,其中的任何反斜杠转义字符,都会被处理的。)
 string:要被处理的字符串
两个可选参数:
 count:要被处理的次数,默认替换所有
 flags:匹配模式,可以使用按位或‘|‘表示同时生效,也可以在正则表达式中指定。
     re.I忽略大小写
     re.L表示特殊字符集\w,\W,\b,\B,\s,\S
     re.M表示多行模式
     re.S ‘.’包括换行符在内的任意字符
     re.U表示特殊字符集\w,\W,\b,\B,\d,\D,\s,\D

# 这个用起来比较复杂
s = 'abc abc aaa abcde 123 45'

new_s = re.sub('\d+','*',s)
print(new_s)
abc abc aaa abcde * *

3.translate()

  Python translate() 方法根据参数table给出的表(包含 256 个字符)转换字符串的字符, 要过滤掉的字符放到 del 参数中。
语法:
str.translate(table[, deletechars]);
参数:
table – 翻译表,翻译表是通过maketrans方法转换而来。
deletechars – 字符串中要过滤的字符列表。
示例:

s = 'abc abc aaa abcde 12345'

t = str.maketrans('abc','123')
new_s = s.translate(t)
print(new_s)
123 123 111 123de 12345

  这里有个问题要注意一下,translate实际上是一个翻译的方法,虽然拿来做替换也是无可厚非的,不过要注意的是它的元素是一一对应的,因此用于转换也是针对单个元素的,即使abc不连在一起,只要发现其中一个就会转换成对应的新元素,这一点就是和replace不同的地方。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章