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

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

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

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

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

请参阅相关的Python

re
文档:

(?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
(Unipre匹配)和
re.X
(详细)。(这些标志在模块内容中描述。)

这些信件

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

_3.6版的新功能。

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

不幸的是,

re
3.6之前的Python版本不支持这些组,也不支持交替启用和禁用内联修饰符。

如果可以使用PyPi
regex模块
,则可以使用以下

(?i:...)
结构:

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

请参阅在线Python演示。



欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5653319.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存