首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >unicode的Regex校正

unicode的Regex校正
EN

Stack Overflow用户
提问于 2019-01-23 13:25:58
回答 2查看 47关注 0票数 0

我需要帮助。我的准则没有产生预期的结果。下面是我的代码:

代码语言:javascript
复制
import re
text='<u+0001f48e> repairs <u+0001f6e0><u+fe0f>your loved<u+2764><u+fe0f>one 
on the spot<u+26a1>'
regex=re.compile(r'[<u+\w+]+>')
txt=regex.findall(text)
print(txt)

输出

代码语言:javascript
复制
['<u+0001f48e>', '<u+0001f6e0>', '<u+fe0f>', 'loved<u+2764>', '<u+fe0f>', 'spot<u+26a1>']

我知道regex是不对的。我希望产出如下:

代码语言:javascript
复制
 '<u+0001f48e>', '<u+0001f6e0><u+fe0f>', '<u+2764><u+fe0f>', '<u+26a1>'
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-01-23 14:29:56

代码语言:javascript
复制
import re

regex = re.compile(r'<u\+[0-9a-f]+>')
text = '<u+0001f48e> repairs <u+0001f6e0><u+fe0f>your loved<u+2764><u+fe0f>one on the spot<u+26a1>'

print(regex.findall(text))

# output:
['<u+0001f48e>', '<u+0001f6e0>', '<u+fe0f>', '<u+2764>', '<u+fe0f>', '<u+26a1>']

这不是你想要的,但就快到了。

现在,为了实现您想要的目标,我们让我们的regex更加迫切:

代码语言:javascript
复制
import re

regex = re.compile(r'((?:<u\+[0-9a-f]+>)+)')
text = '<u+0001f48e> repairs <u+0001f6e0><u+fe0f>your loved<u+2764><u+fe0f>one on the spot<u+26a1>'

print(regex.findall(text))

# output:
['<u+0001f48e>', '<u+0001f6e0><u+fe0f>', '<u+2764><u+fe0f>', '<u+26a1>']
票数 1
EN

Stack Overflow用户

发布于 2019-01-23 14:18:05

为什么不添加可选的第二个标签搜索:

代码语言:javascript
复制
regex=re.compile(r'<([u+\w+]+>(<u+fe0f>)?)')

这个工作很好和你的例子。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54328343

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档