删除不是字母,数字,空格的字符?

时间:2014-04-01 14:15:35

标签: python-3.x

社区,

我需要清理一个字符串,以便它只包含字母,数字和空格。 字符串暂时由不同的句子组成。

我试过了:

for entry in s:
if not isalpha() or isdigit() or isspace:
    del (entry)
else: s.append(entry) # the wanted characters should be saved in the string, the rest should be deleted

我正在使用python 3.4.0

2 个答案:

答案 0 :(得分:2)

您可以使用:

clean_string = ''.join(c for c in s if c.isalnum() or c.isspace())

它遍历每个角色,只留下满足两个标准中至少一个的那些角色,然后将它们全部重新连接在一起。我使用isalnum()来检查字母数字字符,而不是分别检查isalpha()isdigit()

您可以使用filter

实现相同的目标
clean_string = filter(lambda c: c.isalnum() or c.isspace(), s)

答案 1 :(得分:1)

or不会像您认为的那样有效。相反,你应该这样做:

new_s = ''

for entry in s:
    if entry.isalpha() or entry.isdigit() or entry.isspace():
        new_s += entry

print(new_s)