【发布时间】:2018-11-06 07:01:31
【问题描述】:
我正在尝试使用 re.UNICODE 标志来匹配可能包含 unicode 字符的字符串,但它似乎不起作用。例如:
Python 2.7.12 (default, Dec 4 2017, 14:50:18)
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import re
>>> r = re.compile(ur"(\w+)", re.UNICODE)
>>> r.findall(u"test test test", re.UNICODE)
[]
如果我不指定 unicode 标志,它可以工作,但显然它不适用于 unicode 字符串。我需要做些什么才能使其正常工作?
【问题讨论】:
-
您遇到错误了吗?如果是这样,请通过编辑您的帖子来提供整个错误消息。
-
没有错误,它只是返回一个空列表。我直接从解释器那里复制过来的。
-
哦,我的错,我完全错过了
[] -
您是否尝试过将字符串解码为 ascii,然后与有效的正则表达式匹配?
-
好的,我想我明白了。当您将它与编译对象一起使用时,该标志不会与 findall 一起使用,它只会用于初始编译功能。这行得通。
标签: python regex python-2.7 unicode