12、Python如何去掉字符串中不需要的字符
方案一:字符串的 strip()、lstrip()、rstrip() 方法
str.strip([chars])
返回字符串的一个副本,去掉前面和后面的字符。chars参数是一个字符串,指定要删除的字符集。如果省略或没有,chars参数默认为删除空白符。
str = ' \n abcd \t '
print(str.strip())
# abcd
str = '+===-==abcdefg===+=='
print(str.strip('+-='))
# abcdefg
方案二:删除固定位置字符串可以使用切片
字符串切片可以用来截取字符串的一部分,我们可以利用这个方法来去除字符串中的特定字符。
filename = 'name.png'
print(filename[4:]) # .png
方案三:字符串替换
可以把你不需要的字符替换为空字符串,这样就把字符串删除问题,转换成了字符串替换问题,实现了去掉字符串中不需要的字符的效果。
1、可以使用replace() 方法进行字符串替换:
filename = 'name.png'
print(filename.replace('name', 'file'))
# file.png
# 空格替换为空字符串实现去除不需要字符的效果
str = 'hello lilei'
print(str.replace(' ', ''))
2、使用正则表达式:
replace() 方法存在一个问题,一次只能替换一个字符,想要替换多个,还要循环执行,那我们其实也可以直接使用正则,一次完成替换。
import re
str = '+===-==abcdefg===+=='
res = re.sub('[+=-]+', '', str)
print(res) # abcdefg
3、使用 translate() 函数
使用translate()方法进行字符串转换,通常需要先创建一个转换表。转换表可以使用Python内置的str.maketrans()方法创建,也可以通过 ord() 方法手动创建一个字典来实现。
# 1.手动创建转换表
str = '123abc78defg'
print(str.translate({ord('a'): 'A'}))
# 结果: 123Abc78defg
# 2.当需要替换的字符非常多的时候
table = str.maketrans("abc", "ABC")
print(str.translate(table))
# 结果:123ABC78defg
# 3.将所有数字转换为空
table = str.maketrans("", "", '0123456789')
print(str.translate(table))
# 结果:abcdefg
string.maketrans(x[, y[, z]])
作者:勇敢滴哥哥