import re
b="united thats weak. See ya "
print b.decode('utf-8') #output: u'united thats weak. See ya \U0001f44b'
print re.findall(r'[\U0001f600-\U0001f650]',b.decode('utf-8'),flags=re.U) # output: [u'S']
如何获得输出\U0001f44b
。请帮忙
答案 0 :(得分:1)
搜索unicode范围与搜索任何类型的字符范围完全相同。但是,您需要正确表示字符串。这是一个有效的例子:
#coding: utf-8
import re
b=u"united thats weak. See ya "
assert re.findall(u'[\U0001f600-\U0001f650]',b) == [u'']
assert re.findall(ur'[-]',b) == [u'']
注意:
#coding: utf-8
或类似内容。\U
包含unicode字符,则无法使用原始字符串前缀(r''
)。\U
转义),那么您可以使用原始字符串前缀。re.U
,\s
或类似内容,否则您不需要\w
标记。