1

次のようなユニコード文字列があります

u'0d7a6b6b37682bab6d8eda97cda4bad7'

u'Brauers, A.'

この2つを区別したいと思います。regexwithを使用してみましたが、2 番目の例にはand\p{Alphabet}が含まれているため、2 番目の例では機能しません。誰でもこれで私を助けることができますか?,.

4

2 に答える 2

4

16進数をチェックするだけですか?

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

最も簡単なことは、非 16 進数をチェックすることです。

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 に答える