编辑:正如一些评论者所指出的那样,应该是^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
似乎支持负向先行断言(参见“Invalidate a match”)。找不到答案来回答VSCode是否支持它。
在VS Code中,我尝试通过Shift+Command+F
在Django项目中查找类定义。打开了正则表达式搜索。现在我的搜索模式是这样的:
^class [A-Z][a-z]*
因此,将找到“class Abc”,其中Abc是类名的每个出现。
现在我想排除像class Migration(...)
或class Command(...)
这样的类
我尝试使用负向先行断言来做到这一点,就像这样:
^class (!?Migration)[A-Z][a-z]*
但是这样行不通。VS Code将向我显示所有名为class Migration(...)
的类,因此它不是排除它,而是聚焦于它。
我错过了什么?
!?
不是负向先行断言,也许你的意思是?!
? - UnholySheep^class (?!Migration)[A-Z][a-z]*
。 - Wiktor Stribiżewripgrep
工具,该工具仅支持某些类型的POSIX正则表达式语法。 - Wiktor Stribiżewripgrep
设置,并设置"search.useRipgrep": false
。然后重试^class (?!Migration)[A-Z][a-z]*
。 - Wiktor Stribiżew