Python如何移除字符串中间指定字符 strip及remove方法失效问题咨询
错误原因
strip()方法仅能处理字符串首尾的指定字符,完全不会匹配修改中间位置的字符,不符合你的需求。另外你代码里写的strip(l)没有给l加引号,会被Python识别为未定义的变量,这是直接触发报错的直接原因。- Python字符串类型本身没有内置
remove()方法,调用不存在的方法自然会报错。
正确实现方案
方案1:移除全局所有指定字符(最常用)
直接使用str.replace()方法,将目标字符替换为空字符串即可,首尾和中间的对应字符都会被删除:
eee = "hello everyone" # 替换所有'l'为空字符串 rrr = eee.replace('l', '') print(rrr) # 输出结果为 heo everyone
如果你需要同时移除多个不同的字符,可以链式调用replace:
# 同时移除'l'和'e' rrr = eee.replace('l', '').replace('e', '')
方案2:仅移除指定位置的字符
如果不需要删除所有目标字符,只想删特定位置的,可以先把字符串转为列表,修改后再拼接回字符串:
eee = "hello everyone" str_list = list(eee) # 删除索引为2的字符(也就是第一个'l') del str_list[2] rrr = ''.join(str_list) print(rrr) # 输出结果为 helo everyone
方案3:匹配规则移除字符
如果要移除符合某种规则的字符(比如所有数字、所有符号),可以用正则表达式的re.sub()方法:
import re eee = "hello everyone 123" # 移除所有数字 rrr = re.sub('\d', '', eee) print(rrr) # 输出结果为 hello everyone
内容的提问来源于stack exchange,提问作者user17379637
相关产品推荐
相关产品推荐

