在Python中从字符串中移除不必要的字符

6 投票
9 回答
23226 浏览
提问于 2025-04-15 22:25

我有一些字符串,想要删除里面一些不需要的字符。比如说:Adam'sApple ----> AdamsApple。(不区分大小写)有没有人能帮我一下?我需要最快的方法,因为我有几百万条记录需要处理。谢谢!

9 个回答

5

translate 方法的第二个参数中出现的任何字符都会被删除:

>>> "Adam's Apple!".translate(None,"'!")
'Adams Apple'

注意:使用 None 作为第一个参数的 translate 方法需要 Python 2.6 或更高版本,否则第一个参数必须是一个长度为 256 的翻译字符串。对于 2.6 之前的版本,可以用 string.maketrans('','') 来代替 None。

6

这里有一个函数,它可以去掉所有让人烦恼的ascii字符,唯一的例外是"&",它会被替换成"and"。我用这个函数来管理文件系统,确保所有文件都遵循我要求的命名规则。

def cleanString(incomingString):
    newstring = incomingString
    newstring = newstring.replace("!","")
    newstring = newstring.replace("@","")
    newstring = newstring.replace("#","")
    newstring = newstring.replace("$","")
    newstring = newstring.replace("%","")
    newstring = newstring.replace("^","")
    newstring = newstring.replace("&","and")
    newstring = newstring.replace("*","")
    newstring = newstring.replace("(","")
    newstring = newstring.replace(")","")
    newstring = newstring.replace("+","")
    newstring = newstring.replace("=","")
    newstring = newstring.replace("?","")
    newstring = newstring.replace("\'","")
    newstring = newstring.replace("\"","")
    newstring = newstring.replace("{","")
    newstring = newstring.replace("}","")
    newstring = newstring.replace("[","")
    newstring = newstring.replace("]","")
    newstring = newstring.replace("<","")
    newstring = newstring.replace(">","")
    newstring = newstring.replace("~","")
    newstring = newstring.replace("`","")
    newstring = newstring.replace(":","")
    newstring = newstring.replace(";","")
    newstring = newstring.replace("|","")
    newstring = newstring.replace("\\","")
    newstring = newstring.replace("/","")        
    return newstring
6

一种简单的方法:

>>> s = "Adam'sApple"
>>> x = s.replace("'", "")
>>> print x
'AdamsApple'

... 或者可以看看 正则表达式替换

撰写回答