2012-07-09 119 views
1

我有Unicode字符串像有特殊字符的Unicode檢查

u'0d7a6b6b37682bab6d8eda97cda4bad7'

u'Brauers, A.'

我想其中的兩個進行區分。我嘗試使用regex\p{Alphabet},但它不適用於第二個示例,因爲第二個示例包含,.。誰能幫我這個?

+2

分清什麼? – 2012-07-09 12:15:29

+1

轉過身去;檢查數字呢? – 2012-07-09 12:15:53

+0

您將不得不更詳細地描述兩個字符串的特徵。第一個總是36個字符?總是所有十六進制? – 2012-07-09 12:23:47

回答

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 
4

只需檢查十六進制數字?

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