编辑:正如一些评论者指出的那样,应该是^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似乎支持负向预测(参见“使匹配无效”) https://learn.microsoft.com/en-gb/visualstudio/ide/using-regular-expressions-in-visual-studio?view=vs-2015。如果 VSCode 确实支持,则无法找到问题的答案。
在 VS Code 中,我试图通过以下方式在 Django 项目中查找类定义Shift+Command+F
。打开正则表达式搜索。现在我的搜索模式是这样的:
^class [A-Z][a-z]*
因此,每次出现“class Abc”(其中 Abc 是类名)都会被找到。
现在我想排除类似的类class Migration(...)
or class Command(...)
我尝试用否定的前瞻来做到这一点,如下所示:
^class (!?Migration)[A-Z][a-z]*
但这是行不通的。 VS Code 将显示所有名为class Migration(...)
,所以不会排除它,而是重点关注它。
我缺少什么?
UPDATE:
您可以在正则表达式中自由使用环视,包括前向和后向,因为迁移到电子3.0。由于从 Chromium 62 和 Node 8.10.0 开始就支持环视,并且 Electron 3.0 使用 Chromium 66 和 Node 10.2.0,因此现在支持它们开箱即用。
PCRE2 选项是
已弃用。使用正则表达式功能时将自动使用 PCRE2
仅 PCRE2 支持。
请注意,从 VS Code 1.31 开始,甚至支持无限宽度lookbehind https://stackoverflow.com/a/57868396/3832970.
旧版本的先前答案
请注意,要制作您的图案前瞻您需要编辑的工作设置.json要设置的文件
"search.usePCRE2": true
See the v1.29 发行说明 https://code.visualstudio.com/updates/v1_29#_backreferences-and-lookahead-in-search:
现在还可以使用反向引用和前瞻断言
在正则表达式搜索中,通过设置"search.usePCRE2": true
。这配置了
ripgrep 使用 PCRE2 正则表达式引擎。虽然 PCRE2 支持许多其他
功能,我们只支持仍然有效的正则表达式
JavaScript,因为仍然使用编辑器的搜索打开的编辑器
基于 JavaScript 的搜索。
另请参阅马克的回答 https://stackoverflow.com/a/53375676/3832970谁更早注意到这个选项。
那么,你的^class (?!Migration)[A-Z][a-z]*
正则表达式将起作用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)