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