Я должен проверять строки на японском языке, закодированные двухбайтовыми символами (естественно, файлы не в Unicode, и я должен хранить их в Shift-JIS). Многие из этих строк содержат цифры, которые также являются двухбайтовыми символами (123456789) вместо стандартных однобайтовых цифр (0-9). Таким образом, обычные методы поиска цифр не будут работать (например, с использованием [0-9] в регулярном выражении или \d).
Единственный способ, который я нашел, чтобы заставить его работать, - это создать кортеж и выполнить итерацию по кортежу в строке для поиска совпадения, но есть ли более эффективный способ сделать это?
Это пример вывода, который я получаю при поиске двухбайтовых чисел:
>>> s = "234" # "2" is a double-byte integer
>>> if u"2" in s:
print "y"
>>> if u"2" in s:
print "y"
y
>>> print s[0]
>>> print s[:2]
2
>>> print s[:3]
23
Любой совет будет принят с благодарностью!
unicodedata
, чтобы получить информацию о символах, для пример:unicodedata.numeric(u'1')
=>1.0
илиunicodedata.name(u'1')
=>'FULLWIDTH DIGIT ONE'
илиunicodedata.digit(u'1')
=>1
- person Lukas Graf   schedule 12.09.2014