Python unicode正则表达式问题

时间:2015-10-22 00:41:33

标签: python regex python-2.7 unicode python-unicode

为什么这样做:

>>> ss
u'\U0001f300'
>>> r = re.compile(u"[u'\U0001F300-\U0001F5FF']+", re.UNICODE)
>>> r.search(ss) # this works
<_sre.SRE_Match object at 0x7f359acf03d8>

但这不是:

>>> r = re.compile("[u'\U0001F300-\U0001F5FF']+", re.UNICODE)
>>> r.search(ss) # this doesn't

根据Ignacio的回答,这也有效:

>>> r = re.compile(u"[\U0001F300-\U0001F5FF]+", re.UNICODE)
>>> r.search(ss)
<_sre.SRE_Match object at 0x7f359acf03d8>

1 个答案:

答案 0 :(得分:3)

unicode干草堆上执行搜索时使用unicode模式。

此外,“你们......”不应该出现在模式中;那些是Unicode字符(在unicode中),不管怎样。