【问题标题】:How can I remove all non-letter (all languages) and non-numeric characters from a string?如何从字符串中删除所有非字母(所有语言)和非数字字符?
【发布时间】:2013-01-19 05:17:27
【问题描述】:

我已经搜索了很长一段时间,但我找不到关于这个主题的任何解释。

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

我对 Python 还很陌生,我想不出一个正则表达式来执行这个任务。 我能想到的唯一其他解决方案是拥有一个包含我要删除的字符的列表并遍历替换它们的字符串。

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

谢谢。

【问题讨论】:

    标签: python regex python-2.7


    【解决方案1】:

    怎么样:

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

    【讨论】:

    • 它也会删除数字。
    【解决方案2】:
    In [63]: s = u'àaeëß35+{}"´'
    
    In [64]: print ''.join(c for c in s if c.isalnum())
    àaeëß35
    

    【讨论】:

    • 嗨@root!优秀的解决方案!非常感谢!如果我想保留空格,我应该在末尾添加或 c == ' ' 吗?
    • @Phil -- 是的,添加or c == ' ' 就可以了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-30
    • 2014-04-26
    • 2018-12-02
    • 1970-01-01
    • 1970-01-01
    • 2011-10-19
    • 1970-01-01
    相关资源
    最近更新 更多