Python 带有 unicode 字符串的正则表达式
Python regex with unicode strings
无法匹配 python 2.7 中的 unicode 字符串。
预期结果 749130
>>> print match("\d+", u'\ufeff749130'.encode('utf-8'))
None
>>> print match("\d+", u'\ufeff749130')
None
>>> print match("\d+", u'\ufeff749130'.decode('utf-8'))
Traceback (most recent call last):
....
UnicodeEncodeError: 'ascii' codec can't encode character u'\ufeff' in position 0: ordinal not in range(128)
无需在 unicode 字符串上使用 str.decode
。如评论中所述,您可能希望使用 search
因为 match
仅从目标字符串的开头开始匹配。
>>> print search("\d+", u'\ufeff749130').group()
749130
无法匹配 python 2.7 中的 unicode 字符串。 预期结果 749130
>>> print match("\d+", u'\ufeff749130'.encode('utf-8'))
None
>>> print match("\d+", u'\ufeff749130')
None
>>> print match("\d+", u'\ufeff749130'.decode('utf-8'))
Traceback (most recent call last):
....
UnicodeEncodeError: 'ascii' codec can't encode character u'\ufeff' in position 0: ordinal not in range(128)
无需在 unicode 字符串上使用 str.decode
。如评论中所述,您可能希望使用 search
因为 match
仅从目标字符串的开头开始匹配。
>>> print search("\d+", u'\ufeff749130').group()
749130