如何解决在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”也可以在一个组中使用。_
不幸的是,re
3.6之前的Python版本不支持这些组,也不支持交替启用和禁用内联修饰符。
如果可以使用PyPi
regex模块,则可以使用以下(?i:...)
结构:
import regex
s = "Welcome to PuNe, Maharashtra"
print(regex.findall(r"PuNe|(?i:MaHaraShTrA)",s))
请参阅在线Python演示。
解决方法
我|
在regex,Python中有了(管道特殊字符)的含义。它匹配第一个或第二个。
ex:a|b
匹配a或b。
我的问题: 如果我想比赛有什么a
用大小写敏感的,b
在上面的例子中不区分大小写?
例如:
s = "Welcome to PuNe,Maharashtra"
result1 = re.search("punnee|MaHaRaShTrA",s)
result2 = re.search("pune|maharashtra",s)
result3 = re.search("PuNe|MaHaRaShTrA",s)
result4 = re.search("P|MaHaRaShTrA",s)
我想按照上述声明(s
即)的方式搜索Pune
PuNe
。但是我必须忽略大小写来搜索马哈拉施特拉邦。如何搜索区分大小写的1个单词和不区分大小写的另一个单词?这样,result1
,result2
,result3
,result4
将给予not
null
价值。
我想 :
result1 = re.search("pune|MaHaRaShTrA",s1,re.IGNORECASE)
但这忽略了两个词的情况。
如何限制一个单词区分大小写而另一个不区分大小写?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。