[英]Python replace/delete special characters
character = (%.,-();'0123456789-—:`’)
character.replace(" ")
character.delete()
我想从程序中删除或替换所有特殊字符和数字,我知道可以在一个字符串中完成,只是不确定如何用引号或其他内容将所有特殊字符隔开。 我应该以某种方式将括号中的所有特殊字符分开,只是不确定如何分解并将所有字符存储在变量中。
translate
方法是我这样做的首选方式。 在要映射的字符之间创建映射,然后将该表应用于输入字符串。
from string import maketrans
special = r"%.,-();'0123456789-—:`’"
blanks = " " * len(special)
table = maketrans(special, blanks)
input_string.translate(table)
似乎是filter
的好应用
>>> s = 'This is a test! It has #1234 and letters?'
>>> filter(lambda i: i.isalpha(), s)
'ThisisatestIthasandletters'
您可以使用带有可选填充值的函数,如果未设置该函数,则只会删除/删除非字母字符,或者您可以指定默认替换值:
def delete_replace(s,fill_char = ""):
return "".join([x if x.isalpha() else fill_char for x in s])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.