正则表达式:当我无法删除它时如何覆盖全局区分大小写的修饰符?

时间:2017-02-25 18:53:57

标签: regex

我有以下正则表达式:

/I_CAN_MODIFY_ONLY_THIS/i

我无法删除i全局修饰符。我唯一能做的就是用I_CAN_MODIFY_ONLY_THIS代替。{1}}。有没有办法覆盖全局不区分大小写?

这样的东西显然存在:(?i)caseless(?-i)cased(?i)caseless,但我无法使其发挥作用。 source

修改 显然,内联模式修饰符在我需要使用的正则表达式引擎中不起作用

2 个答案:

答案 0 :(得分:1)

这些被称为"内联模式修饰符"

如果你已经尝试过,而且它没有工作那么可悲的是我认为简单的答案是否定的。

有不同的口味/引擎/实施,有些支持这个,而其他人则不支持。所以这一切都取决于正则表达式是如何运行的。

一些人在一开始就支持它,覆盖任何列出的外部,而其他人支持放置在正则表达式的中间。

在您链接的同一网站上,他们提供了Flavors的比较 - 从这里我快速编译了这个列表:

内联模式修改器支持

开始或中间: Python

刚刚开始: JGsoft,.NET,Java,Perl,PCRE,PCRE2,PHP,Delphi,R,XRegExp,Ruby,Boost(ECMA),Tcl ARE

完全没有: Javascript,VBScript,std :: Regex,POSIX BRE,GNU BRE,GNU ERE,Oracle,XML,XPath

http://www.regular-expressions.info/refmodifiers.html

答案 1 :(得分:0)

是的,您可以使用内联区分大小写的标记(?-i)来覆盖全局大小写的敏感性。所以,正则表达式就是

(?-i)i_can_modify_only_this

请参阅demo / explanation