Python 检测unicode字符串中的非ascii字符
给定一个文本文件(或unicode字符串),什么是检测ascii编码之外的字符的好方法?我可以很容易地将每个字符迭代传递给Python 检测unicode字符串中的非ascii字符,python,unicode,python-3.x,Python,Unicode,Python 3.x,给定一个文本文件(或unicode字符串),什么是检测ascii编码之外的字符的好方法?我可以很容易地将每个字符迭代传递给ord(),但我想知道是否有更有效、更优雅或更惯用的方法 这里的最终目标是编译数据中无法编码为ascii的字符列表 如果有必要,我的语料库的大小大约是500MB/1200个文本文件。在Win7(64位)上运行(预编译的)Python 3.3.1 这里的最终目标是编译数据中的字符列表 无法编码为ascii的 我能想到的最有效的方法是去掉所有有效的ASCII字符,这将给您留下一个
ord()
,但我想知道是否有更有效、更优雅或更惯用的方法
这里的最终目标是编译数据中无法编码为ascii的字符列表
如果有必要,我的语料库的大小大约是500MB/1200个文本文件。在Win7(64位)上运行(预编译的)Python 3.3.1
这里的最终目标是编译数据中的字符列表
无法编码为ascii的
我能想到的最有效的方法是去掉所有有效的ASCII字符,这将给您留下一个包含所有非ASCII字符的字符串
这只会去掉可打印的字符
>>> import re
>>> print re.sub('[ -~]', '', u'£100 is worth more than €100')
£€
…或者,如果要包含不可打印的字符,请使用此
>>> print re.sub('[\x00-\x7f]', '', u'£100 is worth more than €100')
£€
要消除重复,只需创建返回字符串的set()
>>> print set(re.sub('[\x00-\x7f]', '', u'£€£€'))
set([u'\xa3', u'\u20ac'])
看看