Python替换/删除特殊字符

时间:2014-09-29 21:42:03

标签: python replace

character = (%.,-();'0123456789-—:`’)
character.replace(" ")
character.delete()

我想从我的程序中删除或替换所有特殊字符和数字,我知道它可以在一个字符串中完成,但不确定如何用引号或任何东西分隔所有特殊字符。不知怎的,我应该将括号中的所有特殊字符分开,而不确定如何分解并保留变量中存储的所有字符。

3 个答案:

答案 0 :(得分:1)

translate方法是我首选的方法。在要映射的字符之间创建映射,然后将该表应用于输入字符串。

from string import maketrans

special = r"%.,-();'0123456789-—:`’" 
blanks = " " * len(special)
table = maketrans(special, blanks)
input_string.translate(table)

答案 1 :(得分:0)

似乎是filter

的良好应用
>>> s = 'This is a test! It has #1234 and letters?'
>>> filter(lambda i: i.isalpha(), s)
'ThisisatestIthasandletters'

答案 2 :(得分:0)

您可以使用带有可选填充值的函数,如果没有设置它只会删除/删除非字母字符,或者您可以指定默认替换值:

def delete_replace(s,fill_char = ""):
    return "".join([x  if x.isalpha() else fill_char for x in s])