首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于Python regex的unicode文本中的Word边界

用于Python regex的unicode文本中的Word边界
EN

Stack Overflow用户
提问于 2013-10-15 07:38:23
回答 3查看 1.5K关注 0票数 6

我希望在正则表达式中使用word边界来匹配某些unicode文本。在Python中,Unicode字母被检测为单词边界,如下所示:

代码语言:javascript
复制
>>> re.search(r"\by\b","üyü")
<_sre.SRE_Match object at 0x02819E58>

>>> re.search(r"\by\b","ğyğ")
<_sre.SRE_Match object at 0x028250C8>

>>> re.search(r"\by\b","uyu")
>>>

我应该怎么做才能使单词边界符号与unicode字母不匹配?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-10-15 09:22:20

您可以通过以下方式使用它:

代码语言:javascript
复制
re.search(r'(?u)\by\b', 'üyü')

若要熟悉旗标实验,请使用以下内容:(?iLmsux)

作为一个很好的读物,查看3 edition..There是关于Regex‘in的一个很好的章节。

票数 5
EN

Stack Overflow用户

发布于 2013-10-15 07:45:20

使用re.UNICODE

代码语言:javascript
复制
>>> re.search(r"\by\b","üyü", re.UNICODE)
>>> 
票数 9
EN

Stack Overflow用户

发布于 2017-12-06 08:27:03

代码语言:javascript
复制
#!/usr/bin/python
# -*- coding: utf-8 -*-

s = ur"abcd ААБВ"
import re
rx1 = re.compile(ur"(?u)АБВ")
rx2 = re.compile(ur"(?u)АБВ\b")
rx3 = re.compile(ur"(?u)\bАБВ\b")
print rx1.findall(s)
print rx2.findall(s)
print rx3.findall(s)

print re.search(ur'(?u)ривет\b', ur'Привет')
print re.search(ur'(?u)\bривет\b', ur'Привет')

输出:

代码语言:javascript
复制
[u'\u0410\u0411\u0412']
[u'\u0410\u0411\u0412']
[]
<_sre.SRE_Match object at 0x01F056B0>
None
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19375666

复制
相关文章

相似问题

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