如何使用正则表达式在 Visual Studio Code 中搜索以仅匹配未注释的代码?

Art*_*tan 7 regex search visual-studio-code

例如,我有以下几行:

//sys.log(siteNameToPrepare);
	//sys.log(siteNameToPrepare);
        // sys.log("downloadFolder: "+downloadFolder);
	// lorem ipsum ...
	arbitrary codes here...
	var a = _POST;
	sys.log("groupManagementHandler.jhp _POST is not object");
sys.log("groupManagementHandler.jhp _POST is not object");
Run Code Online (Sandbox Code Playgroud)

我只想匹配未注释掉的 sys.log(xxx) 。我尝试使用以下正则表达式:

[^/]sys.log

在搜索栏 (Ctrl+Shift+F) 上,使用正则表达式,在文件夹的文件中查找未注释的 sys.log。

在此处输入图片说明

它匹配几个文件中未注释的行,但是,我错过了一些在 sys.log 前面有几个空格的行。

我的问题是如何匹配这些行?我在这里缺少什么?

好像我在 Google 和 Stackoverflow 中都找不到答案,我找到了这个,但是这个是针对 Visual Studio 的,而不是 Visual Studio Code。 Visual Studio 搜索未注释的代码

这是我使用前瞻模式得到的错误消息: 在此处输入图片说明

感谢@Wiktor Stribi?ew,现在我可以确认用于在文件中搜索的正则表达式前瞻模式在较旧的 Visual Studio Code (V1.2.0) 中有效,但在 1.17.1 版中无效。

因此,由于较新版本的 VS 代码的错误,这个问题可能会以某种方式被视为重复问题,这导致我发布了这个问题。

Art*_*tan 1

对于那些想立即知道答案的人,这是@Mark 在我的问题的评论部分所建议的:

  1. 首先使用 Ctrl+Shift+F 打开“在文件中搜索”字段
  2. 打开正则表达式功能(输入字段最右侧的按钮)
  3. 输入以下正则表达式:

    ^\s*sys.log

或者这个正则表达式也有效

^[^/\n] (?:/[^ /\n]+)*sys.log

上面的 regex-es 适用于我的情况。

在我得到这个答案之前,我们与 @Tim 和 @Wiktor 进行了讨论,他们都建议使用前瞻正则表达式模式,并且正如 @Wiktor 指出的那样,该模式实际上适用于旧版本(V.1.2.0)的 Visual Studio Code。但显然,自 V1.12.0 版本以来,不再支持用于搜索文件的高级 Regex 功能。但是,如果您使用 Ctrl+F 在文件中搜索,它仍然有效。

感谢@Tim、@Wiktor 和@Mark 帮助澄清了问题。