小编Joh*_*ser的帖子

与区域指标字符类匹配的python正则表达式

表情符号中的标志由一对区域指示符号表示.我想写一个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.

python regex unicode

5
推荐指数
1
解决办法
524
查看次数

标签 统计

python ×1

regex ×1

unicode ×1