Visual Studio 代码中的正则表达式:无效匹配失败并出现“无法识别的标志”错误

2024-01-07

编辑:正如一些评论者指出的那样,应该是^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(使用前将#替换为@)

Visual Studio 代码中的正则表达式:无效匹配失败并出现“无法识别的标志”错误 的相关文章

  • Windows 上的 git 忽略文件名大小写更改 [重复]

    这个问题在这里已经有答案了 我有一个reactjs应用程序 我正在将所有文件名标准化为小写以符合Nodejs 最佳实践 https devcenter heroku com articles node best practices stic
  • 如何在 TCL/EXPECT 中使用 $expect_out 分配变量?

    如果我想匹配DEF 23使用以下正则表达式 expect re DEF 0 9 set result expect out 1 string 为什么它说no such element in array 如何 expect out工作 以及我
  • 在 Shell 中提取匹配模式后的字符串

    如何提取 Shell 脚本中匹配模式后面的任何字符串 我知道 Perl 脚本中的此功能 但不知道 Shell 脚本中的功能 以下是示例 subject 01 这是一个示例主题 可能会有所不同 我必须提取 Subject 01 后面的任何字符
  • 替换第二个和第三个下划线之间的任何内容

    我有一个 PowerShell 脚本行 它用 替换 删除 第二个和第三个下划线之间的字符 get childitem pdf rename item newname name replace p L p L 例子 12345 00001 L
  • 正则表达式:括号表达式中的双反斜杠

    以下表达式中的双反斜杠匹配什么 它是一个过滤器吗 and 转义反斜杠 或 and 未转义 或 and 逃避问号 这是正则表达式的链接以及一些示例测试字符串 如在Rubular http rubular com r Jrw1G4YLtT Th
  • 如何使用 VSCode 调试 Linux 核心转储?

    我故意从我使用 VSCode 编写的 C 应用程序生成核心转储 我不知道如何调试核心转储 有没有人愿意分享这方面的经验 更新 我相信我现在已经可以使用了 我为核心文件创建了第二个调试配置 我需要添加指向生成的转储文件的 coreDumpPa
  • 正则表达式获取模式的最后一次出现

    我有一个字符串 我需要选择最后一次出现的模式 该字符串是 1302638400000 0 0 1302724800000 0 610 64999999999998 1302811200000 0 2266 6500000000001 130
  • 如何在 Visual Studio Code 中包含编译器标志?

    我有一个程序试图在使用 fftw 函数的 Visual Studio Code 调试器中运行 它用命令编译 g dimer cpp std c 11 lfftw3 在我的计算机上的终端上 而不会抱怨未定义的引用 但是 在生成 launch
  • 正则表达式仅允许特定数字

    我正在寻找一个只允许输入特定数字的正则表达式 例如2 4 5 6 10 18 我尝试过类似的东西 2 4 5 6 10 18 我输入的任何内容都无法通过正则表达式 然后计算机用手指着我并大笑 我哪里出错了 单引号是不必要的 您正在寻找的正则
  • JavaScript:搜索字符串时的 indexOf 与 Match? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 使用之间是否存在明显的性能差异 str indexOf src and str match src 我个人比较喜欢match 和正则表达式 但同
  • 正则表达式拒绝连续字符

    我对正则表达式仍然很陌生 基本上我需要做的是创建一个接受数字和字母但不允许输入连续字符的规则 例如 abcd gt 好的 abbcd gt 坏的 我已经完成了大部分工作 但我无法弄清楚的部分是如何禁止连续字符 到目前为止我的代码 A Za
  • Oracle SQL——从字符串中删除部分重复项

    我有一个表 其中有一列包含字符串 如下所示 static text here 1abcdefg1abcdefgpxq 从这个字符串1abcdefg重复两次 所以我想删除该部分字符串 然后返回 static text here 1abcdef
  • 是否可以在 VSCode 中以编程方式将文本文档设置为脏?

    是否可以设置一个TextDocument在 VSCode 中以编程方式脏吗 就像是 openedDocument setDirty 没有直接的方法可以做到这一点 TextDocument isDirty https code visuals
  • 正则表达式提取大括号之间的文本

    我正在尝试提取 PHP 中花括号之间的文本 例如 欢迎 user first name 使用 site 版本 1 5 您的用户名 是 user username 您目前的声誉是 user reputation name 我用过 在某些情况下
  • javascript从字符串创建不区分大小写的正则表达式

    我试图通过以不区分大小写的方式将输入与正则表达式匹配来进行验证 正则表达式作为对象上的字符串从服务中下来 我可能会得到类似的东西 regex ane 我可以执行以下操作 var rx new RegExp object regex The
  • 如何获得 CSS 变量引用的颜色装饰以在 VS Code 中工作?

    我正在研究 CSS 自定义属性及其修改 似乎将 alpha 通道添加 更改为颜色的最佳方法是使用hsl符号 root green 120deg 100 50 box background hsl var green 0 5 这种方法的问题是
  • 使用 C++ 中的 Boost 正则表达式缩小 HTML

    Question 如何使用 C 缩小 HTML 资源 外部库可能是答案 但我更希望改进当前代码 尽管我很期待其他的可能性 当前代码 这是我在c 中的解释以下答案 https stackoverflow com a 5324014 57079
  • 正则表达式等价

    有没有办法找出两个任意正则表达式是否等价 对我来说看起来很复杂的问题 但可能有一些 DFA 简化机制之类的 要测试等价性 您可以计算的表达式并进行比较
  • 扩展可以在 VS Code 中提供自定义任务吗?

    我正在编写 VS Code 扩展 我想向用户的工作区贡献一个任务 而用户不必配置它 理想情况下 取决于工作区的内容 并且我可能还需要一个自定义problemMatcher VS Code 是否公开 API 来执行此操作 或者我应该编写自己的
  • 是否可以使用 Eclipse 的正则表达式搜索和替换转换为小写?

    我已经尝试过 L 但它似乎不是其语法的一部分 并且它的帮助没有提及任何可用的转换 我知道我可以并且知道如何从命令行执行此操作 但是 是否可以使用 Eclipse 的正则表达式搜索和替换进行大小写转换 您可以分两步完成 首先插入小写字母 那么

随机推荐