【问题标题】:How can I check for unicode or escape sequences in a string?如何检查字符串中的 unicode 或转义序列?
【发布时间】:2012-02-12 01:09:13
【问题描述】:

我有一个单词字典列表,其中一些单词包含如下序列:

K\xc3\xb6LNKöLN 正确显示时。

我想清除此类单词的列表,以便它们仅包含纯 ascii 字符。如何进行简单的 True/False 检查以查看字符串是否包含此类序列?

【问题讨论】:

  • 哪些 ASCII 字符是普通字符?使用 Unicode 有什么可怕的?您是否愿意将其更改为“KoLN”并保留它?
  • @JohnMachin 这是一个字典攻击实验。单词取自 /usr/share/dict

标签: python string unicode escaping


【解决方案1】:

str.isalpha() 可能会在这里提供帮助:

>>> 'KöLN'.isalpha()
False
>>> 'K\xc3\xb6LN'.isalpha()
False
>>> 'Cologne'.isalpha()
True

过滤:

>>> [word for word in ('KöLN', 'K\xc3\xb6LN', 'Cologne') if word.isalpha()]
['Cologne']

【讨论】:

  • 重要的是要小心,但是:u'KöLN'.isalpha() 给出 True 而 'KöLN'.isalpha() 给出 False [刚刚在 UTF-8 编码文件中的 2.7 中尝试过.] 我想我只是尝试将字符串转换为 ascii 并根据是否引发异常来决定。
猜你喜欢
  • 2010-11-02
  • 2010-09-16
  • 2020-03-15
  • 2011-03-03
  • 2023-03-25
  • 2017-11-28
  • 2020-04-25
  • 1970-01-01
相关资源
最近更新 更多