python 2.x中unicode字符串的string.ascii_letters相当于?

emm*_*emm 12 python unicode python-2.x

在标准库的"字符串"模块中,

string.ascii_letters ## Same as string.ascii_lowercase + string.ascii_uppercase
Run Code Online (Sandbox Code Playgroud)

'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
Run Code Online (Sandbox Code Playgroud)

是否有一个类似的常量,包括所有被认为是unicode中的字母的东西?

Mar*_*nen 11

您可以使用以下内容构造自己的Unicode大写和小写字母常量:

import unicodedata as ud
all_unicode = ''.join(unichr(i) for i in xrange(65536))
unicode_letters = ''.join(c for c in all_unicode
                          if ud.category(c)=='Lu' or ud.category(c)=='Ll')
Run Code Online (Sandbox Code Playgroud)

这使得字符串长度为2153个字符(缩小的Unicode Python构建).对于像letter in unicode_letters这样的代码,使用集合会更快:

unicode_letters = set(unicode_letters)
Run Code Online (Sandbox Code Playgroud)


Max*_*keh 7

没有字符串,但您可以检查字符是否是使用unicodedata模块的字母,特别是其category()功能.

>>> unicodedata.category(u'a')
'Ll'
>>> unicodedata.category(u'A')
'Lu'
>>> unicodedata.category(u'5')
'Nd'
>>> unicodedata.category(u'?') # Cyrillic f.
'Ll'
>>> unicodedata.category(u'?') # Arabic-indic numeral for 2.
'Nd'
Run Code Online (Sandbox Code Playgroud)

Ll意思是"字母,小写".Lu意思是"字母,大写".Nd表示"数字,数字".

  • 为了使答案完整,这里是所有 Unicode 类别的列表:http://www.fileformat.info/info/unicode/category/index.htm (2认同)