Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 用于将字符串与除特定大小写之外的任何大小写匹配的正则表达式_Regex_Vim - Fatal编程技术网

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]