memeriksa unicode dengan karakter khusus

Saya memiliki string unicode seperti

u'0d7a6b6b37682bab6d8eda97cda4bad7'

Dan

u'Brauers, A.'

Saya ingin membedakan kedua hal tersebut. Saya mencoba menggunakan regex dengan \p{Alphabet} tetapi tidak berhasil dengan contoh kedua karena contoh kedua berisi , dan .. Adakah yang bisa membantu saya dengan ini?


person Sadiksha Gautam    schedule 09.07.2012    source sumber
comment
Balikkan; periksa nomornya saja?   -  person Martijn Pieters    schedule 09.07.2012
comment
Anda harus memberikan gambaran yang lebih lengkap tentang apa yang menjadi ciri kedua string tersebut. Apakah yang pertama selalu 36 karakter? Selalu semuanya hex?   -  person Ned Batchelder    schedule 09.07.2012


Jawaban (2)


Hal paling sederhana adalah memeriksa digit non-hex:

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

Cukup periksa digit hex?

>>> 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