表情符号中的标志由一对区域指示符号表示.我想写一个python正则表达式在一串表情符号标志之间插入空格.
例如,这个字符串是两个巴西标志:
u"\U0001F1E7\U0001F1F7\U0001F1E7\U0001F1F7"
Run Code Online (Sandbox Code Playgroud)
这将呈现如下:
我想在任何一对区域指标符号之间插入空格.像这样的东西:
re.sub(re.compile(u"([\U0001F1E6-\U0001F1FF][\U0001F1E6-\U0001F1FF])"),
r"\1 ",
u"\U0001F1E7\U0001F1F7\U0001F1E7\U0001F1F7")
Run Code Online (Sandbox Code Playgroud)
这将导致:
u"\U0001F1E7\U0001F1F7 \U0001F1E7\U0001F1F7 "
Run Code Online (Sandbox Code Playgroud)
但是那段代码给了我一个错误:
sre_constants.error: bad character range
Run Code Online (Sandbox Code Playgroud)
一个提示(我认为)出现了什么问题,以下内容显示\ U0001F1E7在正则表达式中变为两个"字符":
re.search(re.compile(u"([\U0001F1E7])"),
u"\U0001F1E7\U0001F1F7\U0001F1E7\U0001F1F7").group(0)
Run Code Online (Sandbox Code Playgroud)
这导致:
u'\ud83c'
Run Code Online (Sandbox Code Playgroud)
可悲的是,我对unicode的理解太弱,无法取得进一步的进展.
编辑:我在Mac上使用python 2.7.10.