繁体   English   中英

Python替换/删除特殊字符

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM