我看过很多将整个正则表达式不区分大小写的例子。我想知道的是如何只让部分表达式不区分大小写。
例如,假设我有一个字符串:
fooFOOfOoFoOBARBARbarbarbAr
如果我想匹配所有不区分大小写的"foo"出现,但只想匹配大写的"BAR"怎么办?
理想的解决方案应该是适用于所有正则表达式,但我也很想听听特定语言的解决方案(感谢Espo)。
编辑
Espo提供的链接非常有帮助。里面有一个很好的例子,可以在表达式中启用和禁用修饰符。
对于我的人为例子,我可以这样做:
(?i)foo*(?-i)|BAR
这使得匹配过程中,仅针对foo部分不区分大小写。
在大多数正则表达式实现中似乎都有效,除了Javascript、Python和其他一些实现(如Espo所提到的)。
我想知道的那些主流实现(Perl、PHP、.NET)都支持内联模式更改。