Regex 用于将字符串与除特定大小写之外的任何大小写匹配的正则表达式
我试图构造一个正则表达式来匹配除特定大小写之外的任何大小写中的字符串。例如,给定Regex 用于将字符串与除特定大小写之外的任何大小写匹配的正则表达式,regex,vim,Regex,Vim,我试图构造一个正则表达式来匹配除特定大小写之外的任何大小写中的字符串。例如,给定foobar,我希望匹配foobar、foobar、foobar等,但不匹配foobar 一种具有所需结果的解决方法是将所有foobar(区分大小写)替换为不同的字符串,例如ABC,然后对foobar执行不区分大小写的搜索,然后它将匹配所有变体。但是我更希望有一种不修改要搜索的文本的方法 我正在使用Vim,但如果有人知道一种方法是使用任何regex flavor,我相信我可以找到如何使用它。对于支持修改regex标志
foobar
,我希望匹配foobar
、foobar
、foobar
等,但不匹配foobar
一种具有所需结果的解决方法是将所有foobar
(区分大小写)替换为不同的字符串,例如ABC
,然后对foobar
执行不区分大小写的搜索,然后它将匹配所有变体。但是我更希望有一种不修改要搜索的文本的方法
我正在使用Vim,但如果有人知道一种方法是使用任何regex flavor,我相信我可以找到如何使用它。对于支持修改regex标志的flavor,可以使用以下方法:
(?!foobar)(?i)foobar
它使用一个负的区分大小写的前瞻,然后切换到区分大小写的模式,以再次匹配字符串
Vim不支持在比赛中途切换ignorecase,因为\c
和\c
将适用于整个比赛
FWIW那么你可以做一些愚蠢的事情,比如:
/\C\(foobar\)\@![fF][oO][oO][bB][aA][rR]