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

3

我已经搜索了一段时间,但是没有找到有关这个主题的任何解释。

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

我对Python非常陌生,无法想出一个执行此任务的正则表达式。唯一的解决方案是将我要删除的字符列表和遍历字符串替换它们。

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

谢谢。

2个回答

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

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

嗨@root!优秀的解决方案!非常感谢!如果我想保留空格,我只需要在末尾添加或c == ' '吗? - Phil
1
@Phil -- 是的,添加 or c == ' ' 就可以了。 - root

2

如何处理:

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

它会删除数字。 - Ashwini Chaudhary

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接