请给我一系列的utf-8 例如:
>>> s
'\xe9\x98\xbf\xe5\xaf\x8c\xe6\xb1\x97Afghanistan'
>>>re.findall('[\x00-\xff]+',s)
['\xe9\x98\xbf\xe5\xaf\x8c\xe6\xb1\x97Afghanistan']
我需要出局:
'\xe9\x98\xbf\xe5\xaf\x8c\xe6\xb1\x97'
答案 0 :(得分:0)
尝试使用此正则表达式模式仅查找非ascii。
re.findall(r'[^\x00-\x7f]',s)
答案 1 :(得分:0)
使用'[\x00-\xff]'
,您正在选择所有可能的字符。
在您的情况下,您需要的是更小的范围。对于非ASCII,请尝试:
输入:
re.findall('[^\x00-\x7f]', s)
<强>输出:强>
['\xe9', '\x98', '\xbf', '\xe5', '\xaf', '\x8c', '\xe6', '\xb1', '\x97']
如果您需要输出不是列表,而是单个字符串(正如您在问题的最后一行中指定的那样,只需这样做
输入:
re.findall('[^\x00-\x7f]+', s)[0]
输出
'\xe9\x98\xbf\xe5\xaf\x8c\xe6\xb1\x97'