我调用了一个函数,该函数返回包含从 ( 到 “、和、以及数字的各种字符的代码。
有没有一种优雅的方法可以删除所有这些,所以我最终只剩下字母了?
原文由 Joan Venge 发布,翻译遵循 CC BY-SA 4.0 许可协议
我调用了一个函数,该函数返回包含从 ( 到 “、和、以及数字的各种字符的代码。
有没有一种优雅的方法可以删除所有这些,所以我最终只剩下字母了?
原文由 Joan Venge 发布,翻译遵循 CC BY-SA 4.0 许可协议
使用 RegExes 的解决方案在这里非常简单:
import re
newstring = re.sub(r"[^a-zA-Z]+", "", string)
其中 string
是您的字符串, newstring
是没有非字母字符的字符串。这样做是用一个空字符串替换每个不是字母的字符,从而将其删除。但是请注意,RegEx 在这里可能有点矫枉过正。
一个更实用的方法是:
newstring = "".join(filter(str.isalpha, string))
不幸的是,您不能只在 filter
对象上调用 str
将其转换为字符串,这样看起来会好得多…
以 pythonic 方式进行
newstring = "".join(c for c in string if c.isalpha())
原文由 Cu3PO42 发布,翻译遵循 CC BY-SA 4.0 许可协议
2 回答5.3k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
4 回答1.6k 阅读✓ 已解决
3 回答1.4k 阅读✓ 已解决
3 回答1.4k 阅读✓ 已解决
1 回答2.8k 阅读✓ 已解决
2 回答971 阅读✓ 已解决
鉴于
您可以使用生成器表达式过滤掉非字母字符:
或者使用
filter
过滤:或者您可以使用
re.sub
将非字母替换为空白: