编辑:正如一些评论者所指出的,它应该是^class (?!Migration)[A-Z][a-z]*
。但是VS Code抱怨:Error parsing regex near "ss (?!Migr' at character offset 9: Unrecognized flag: '!'. (Allowed flags: i, m, s, U, u, x.)
Visual Studio
seems to support negative look aheads (see "Invalidate a match")。 VSCode是否支持该问题,找不到答案。
在VS Code中,我试图通过Shift+Command+F
在Django项目中查找类定义。打开正则表达式搜索。现在我的搜索模式是这样:
^class [A-Z][a-z]*
因此将找到每次出现的“ Abc类”,其中Abc是类名。
现在我想排除类似class Migration(...)
或class Command(...)
我试图用负前瞻来做到这一点,就像这样:
^class (!?Migration)[A-Z][a-z]*
但是那行不通。 VS Code将向我显示所有名为class Migration(...)
的类,因此它会专注于它,而不是排除它。
我想念什么?
答案 0 :(得分:1)
请注意,要使 lookaheads 起作用,您需要编辑 settings.json 文件以设置
"search.usePCRE2": true
现在也可以使用反向引用和超前断言 在正则表达式搜索中,通过设置
"search.usePCRE2": true
。这配置 ripgrep使用PCRE2正则表达式引擎。尽管PCRE2支持许多其他功能 功能,我们仅支持在以下情况下仍然有效的正则表达式 JavaScript,因为仍然使用编辑器的 基于JavaScript的搜索。
另外,请参见Mark's answer,他之前注意到了此选项。
然后,您的^class (?!Migration)[A-Z][a-z]*
正则表达式将起作用。
答案 1 :(得分:0)
为此目的,请使用名为Reverse Search的Visual Studio代码扩展名