用特殊字符检查unicode

时间:2012-07-09 12:14:35

标签: python regex unicode-string

我有像

这样的unicode字符串

u'0d7a6b6b37682bab6d8eda97cda4bad7'

u'Brauers, A.'

我想区分其中的两个。我尝试将regex\p{Alphabet}一起使用,但它不适用于第二个示例,因为第二个示例包含,.。任何人都可以帮我这个吗?

2 个答案:

答案 0 :(得分:4)

只检查十六进制数字?

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

答案 1 :(得分: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