【发布时间】:2010-09-07 19:15:31
【问题描述】:
我见过很多让整个正则表达式不区分大小写的例子。我想知道的是只有部分表达式不区分大小写。
例如,假设我有一个这样的字符串:
fooFOOfOoFoOBARBARbarbarbAr
如果我想匹配所有出现的“foo”而不考虑大小写但我只想匹配大写的“BAR”怎么办?
理想的解决方案是适用于正则表达式风格的解决方案,但我也有兴趣听到特定语言的解决方案(感谢 Espo)
编辑
Espo 提供的链接非常有帮助。那里有一个很好的例子,关于在表达式中打开和关闭修饰符。
对于我人为的例子,我可以这样做:
(?i)foo*(?-i)|BAR
这使得匹配只对匹配的 foo 部分不区分大小写。
这似乎在大多数正则表达式实现中都有效,除了 Javascript、Python 和其他一些(正如 Espo 提到的)。
我想知道的大的(Perl、PHP、.NET)都支持内联模式更改。
【问题讨论】:
-
此问题已添加到Stack Overflow Regular Expression FAQ 的“修饰符”下。
标签: regex