re中的俄语符号(Python)

Que*_*iek 12 python regex utf-8

我从文件中获取数据:

words = re.findall(r'[\w]+',self._from.encode('utf8'),re.U)
Run Code Online (Sandbox Code Playgroud)

如果文件包含:

你好你好吗?

那么结果将是:

['你好你好吗']

但如果文件包含俄语(即西里尔符号),则:

Привет,какдела?

在这种情况下,结果是:

['\ xd0','\ xd1','\ xd0','\ xd0\xb2\xd0\xb5\xd1','\ xd0\xba\xd0','\ xd0\xba','\ xd0', '\ xd0\xb5\xd0','\ xd0']

为什么?跆拳道?我已添加:

sys.setdefaultencoding('utf-8')
Run Code Online (Sandbox Code Playgroud)

我正在使用python2.7和linux ubuntu.

回答:

words = re.findall(r'[\w]+',self._from.decode('utf8'),re.U)
print u" ".join(words)
Run Code Online (Sandbox Code Playgroud)

unu*_*tbu 10

要使用\w+匹配的字母数字的Unicode字符,你应该通过双方一个unicode图案和unicode文字re.findall.


Dmi*_*try 5

我的解决方案:

txt = re.findall(r'[?-?]+', data)
Run Code Online (Sandbox Code Playgroud)

?-? - 俄语字母