有特殊字符的Unicode检查

问题描述:

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

最简单的事情可能是检查非十六进制数字:

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 

只需检查十六进制数字?

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