Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说python之替换函数,希望能够帮助你!!!。
语法:
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
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 * *
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不同的地方。
今天的分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。