Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.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 Visual Studio代码中的正则表达式:无效匹配失败;“未识别标志”;错误_Regex_Visual Studio Code - Fatal编程技术网

Regex Visual Studio代码中的正则表达式:无效匹配失败;“未识别标志”;错误

Regex Visual Studio代码中的正则表达式:无效匹配失败;“未识别标志”;错误,regex,visual-studio-code,Regex,Visual Studio Code,编辑:正如一些评论者所指出的,应该是^class(?!Migration)[A-Z][A-Z]*。但是VS代码抱怨:在字符偏移量9处解析“ss(?!Migr):unrecogned flag:'!'(允许的标志:i、m、s、U、U、x)附近的正则表达式时出错。 。如果VSCode确实支持此问题,则找不到该问题的答案 在VS代码中,我试图通过Shift+Command+F在Django项目中查找类定义。打开了正则表达式搜索。现在我的搜索模式是: ^class[A-Z][A-Z]* 因此,每次出现

编辑:正如一些评论者所指出的,应该是
^class(?!Migration)[A-Z][A-Z]*
。但是VS代码抱怨:在字符偏移量9处解析“ss(?!Migr):unrecogned flag:'!'(允许的标志:i、m、s、U、U、x)附近的正则表达式时出错。

。如果VSCode确实支持此问题,则找不到该问题的答案


在VS代码中,我试图通过Shift+Command+F在Django项目中查找类定义。打开了正则表达式搜索。现在我的搜索模式是:

^class[A-Z][A-Z]*

因此,每次出现“类Abc”,其中Abc是类名,都会被找到

现在我想排除
类迁移(…)
类命令(…)

我试着用消极的前瞻来做这件事,就像这样:

^class(!?迁移)[A-Z][A-Z]*

但是这是行不通的。VS代码将向我显示所有名为类迁移(…)的类,因此它不会排除它,而是将重点放在它上面


我缺少什么?

更新:

由于迁移到Electron 3.0,您可以在正则表达式中自由使用lookaheads和lookbehinds。由于自Chromium 62和Node 8.10.0起就支持lookarounds,而Electron 3.0使用Chromium 66和Node 10.2.0,因此现在支持开箱即用

PCRE2选项为

已弃用。使用正则表达式功能时将自动使用PCRE2 仅由PCRE2支持的

请注意,从VS代码1.31开始,偶数

旧版本以前的答案

请注意,要使lookaheads模式正常工作,您需要编辑settings.json文件以进行设置

"search.usePCRE2": true
见:

现在还可以使用反向引用和前瞻断言 在正则表达式搜索中,通过设置
“search.usePCRE2”:true
。这将配置 ripgrep使用PCRE2正则表达式引擎。而PCRE2支持许多其他 功能,我们只支持在中仍然有效的正则表达式 JavaScript,因为仍然使用编辑器的 基于JavaScript的搜索

另外,看看谁在早些时候注意到了这个选项

然后,您的
^class(?!Migration)[A-Z][A-Z]*
regex将起作用


使用为此目的而调用的visual studio代码扩展

!?
不是消极的前瞻,可能您的意思是
?!
?您的正则表达式包含键入错误。
^class(?!迁移)[a-Z][a-Z]*
应该可以工作。答案是,“在文件中查找”功能不支持lookarounds,因为它使用了只支持某种POSIX正则表达式语法的
ripgrep
工具。请尝试以下操作:编辑settings.json文件中的
ripgrep
设置并设置
“search.useRipgrep”:false
。然后重试
^class(?!Migration)[A-Z][a-z]*
@Ugur有一个VScode更新,现在有了PCRE2选项。请注意,不再需要此设置:“不推荐使用。当使用仅由PCRE2支持的正则表达式功能时,将自动使用PCRE2。”@MarredCheese很好,我修改了答案以反映更改。VScode开发如此活跃真是太好了。