我有像
这样的unicode字符串 u'0d7a6b6b37682bab6d8eda97cda4bad7'
和
u'Brauers, A.'
我想区分其中的两个。我尝试将regex
与\p{Alphabet}
一起使用,但它不适用于第二个示例,因为第二个示例包含,
和.
。任何人都可以帮我这个吗?
答案 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