1

我有像

u'0d7a6b6b37682bab6d8eda97cda4bad7'

u'Brauers, A.'

我想区分这两种。我尝试使用regexwith\p{Alphabet}但它不适用于第二个示例,因为第二个示例包含,and .。谁能帮我这个?

4

2 回答 2

4

只检查十六进制数字?

>>> re.match(r'^[0-9a-f]*$', u'0d7a6b6b37682bab6d8eda97cda4bad7') != None
True
>>> re.match(r'^[0-9a-f]*$', u'Brauers, A.') != None
False
于 2012-07-09T12:23:11.840 回答
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
于 2012-07-09T12:25:23.463 回答