如何从字符串中删除所有非字母(所有语言)和非数字字符?

时间:2013-02-04 13:34:29

标签: python regex python-2.7

我一直在寻找相当长的一段时间但我找不到任何关于这个主题的解释。

如果我有一个字符串,请说:u'àaeëß35+{}"´'。我希望删除所有非字母数字字符(但是,我希望保留à, ë, ß等。

我对Python很新,我无法找出执行此任务的正则表达式。 只有我能想到的其他解决方案是有一个列表,其中包含我要删除的字符,并通过字符串迭代替换它们。

这里正确的Pythonic解决方案是什么?

谢谢。

2 个答案:

答案 0 :(得分:9)

In [63]: s = u'àaeëß35+{}"´'

In [64]: print ''.join(c for c in s if c.isalnum())
àaeëß35

答案 1 :(得分:2)

怎么样:

def StripNonAlpha(s):
    return "".join(c for c in s if c.isalpha())