您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

在python regex中将1个单词限制为区分大小写,其他限制为不区分大小写 (管)

在python regex中将1个单词限制为区分大小写,其他限制为不区分大小写 (管)

在Python 3.6及更高版本中,您可以使用内联修饰符组

>>> s = "Welcome to PuNe, Maharashtra"
>>> print(re.findall(r"PuNe|(?i:MaHaRaShTrA)",s))
['PuNe', 'Maharashtra']

请参阅相关的Pythonre文档

(?aiLmsux-imsx:...)

(零或从所述一组多个字母'a''i''L''m''s''u''x',任选接着进行'-'随后从一个或多个字母'i''m''s''x'。)中的字母设置或移除对应的标志:re.A(只有ASCII匹配),re.I(忽略大小写),re.L(取决于语言环境),re.M(多行),re.S(所有点都匹配),re.U(Unicode匹配)和re.X(详细)。(这些标志在模块内容中描述。)

这些信件'a''L''u'为内联标志使用时,所以他们不能合并或者按照相互排斥'-'。而是,当其中一个出现在内联组中时,它将覆盖封闭组中的匹配模式。在Unicode模式中,(?a:...)切换到仅ASCII匹配,然后(?u:...)切换到Unicode匹配(认)。在字节模式中,(?L:...)切换到取决于语言环境的匹配,并(?a:...)切换到仅ASCII匹配(认)。此替代仅对狭窄的内联组有效,并且原始匹配模式在组外恢复。

_3.6版的新功能

在3.7版中进行了更改:字母“ a”,“ L”和“ u”也可以在一个组中使用。_

不幸的是,re3.6之前的Python版本不支持这些组,也不支持交替启用和禁用内联修饰符。

如果可以使用PyPi regex模块可以使用以下(?i:...)结构:

import regex
s = "Welcome to PuNe, Maharashtra"
print(regex.findall(r"PuNe|(?i:MaHaRaShTrA)",s))

请参阅在线Python演示

python 2022/1/1 18:30:13 有330人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶