проверка юникода специальными символами

У меня есть строки юникода, например

u'0d7a6b6b37682bab6d8eda97cda4bad7'

и

u'Brauers, A.'

Я хотел бы провести различие между двумя из них. Я пытался использовать regex с \p{Alphabet}, но это не работает со вторым примером, так как второй пример содержит , и .. Кто-нибудь может мне с этим помочь?


person Sadiksha Gautam    schedule 09.07.2012    source источник
comment
Поверни это другой стороной; проверить номера вместо этого?   -  person Martijn Pieters    schedule 09.07.2012
comment
Вам придется дать более полное описание того, что характеризует две строки. Первый всегда 36 символов? Всегда все шестнадцатеричные?   -  person Ned Batchelder    schedule 09.07.2012


Ответы (2)


Самым простым может быть проверка нешестнадцатеричных цифр:

if re.match(r'[^0-9a-f]', my_string):
    # This is a u'Brauers, A.' kind of string
else:
    # This is a u'0d7a6b6b37682bab6d8eda97cda4bad7' kind of string
person Ned Batchelder    schedule 09.07.2012

Просто проверить шестнадцатеричные цифры?

>>> re.match(r'^[0-9a-f]*$', u'0d7a6b6b37682bab6d8eda97cda4bad7') != None
True
>>> re.match(r'^[0-9a-f]*$', u'Brauers, A.') != None
False
person Maria Zverina    schedule 09.07.2012