在Python中从字符串中移除不必要的字符
我有一些字符串,想要删除里面一些不需要的字符。比如说: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'
... 或者可以看看 正则表达式替换。