Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex Visual Studio代码正则表达式包含但不以结尾_Regex_Visual Studio Code - Fatal编程技术网

Regex Visual Studio代码正则表达式包含但不以结尾

Regex Visual Studio代码正则表达式包含但不以结尾,regex,visual-studio-code,Regex,Visual Studio Code,我想在VS代码中构建正则表达式,它返回整个解决方案中包含给定字符串(请记住它可以包含特殊字符)且不以给定字符串结尾的所有短语,例如。 包含/webhelp,但不以/ 匹配项: /server/webhelp blah/webhelp# 不匹配 /server/webhelp/ server#webhelp/ 我不是Regex方面的专家,我曾尝试构建类似于: (?=/webhelp)(?=.*(?<!/)$) (?=/webhelp)(?=.*? 但它不起作用。从Visual St

我想在VS代码中构建正则表达式,它返回整个解决方案中包含给定字符串(请记住它可以包含特殊字符)且不以给定字符串结尾的所有短语,例如。 包含
/webhelp
,但不以
/

匹配项:

/server/webhelp

blah/webhelp#
不匹配

/server/webhelp/

server#webhelp/
我不是Regex方面的专家,我曾尝试构建类似于:

(?=/webhelp)(?=.*(?<!/)$)
(?=/webhelp)(?=.*?
但它不起作用。

从Visual Studio Code v.1.31.0发行版开始,您就没有任何约束,现在不需要为此设置任何选项。

对于早期版本,您可以使用lookaheads

/webhelp(?!.*/$).*$

详细信息

  • /webhelp
    -文字子字符串
  • (?!.*/$)
    -一种消极的前瞻,确保行不会以
    /
  • *$
    -行的其余部分
即使在“查找位置”文件中,它仍然有效:


这里有一个略短的regex版本:

/webhelp(?!/)

它只匹配
“/webhelp”
,除非后面跟一个斜杠。

您已经知道pcre2选项不启用lookbehinds,为什么要尝试它们?另外,要匹配一些字符串以突出显示或删除它,您需要使用字符,并且您的正则表达式只包含lookarounds。请尝试
/webhelp(?。*/$).*$
我刚刚检查了这个表达式,它返回/server/webhelp/,可能在
/
之后有空格?然后尝试
/webhelp(?。*/\s*$).*$
我刚刚复制了你的表达式并运行了VS代码搜索引擎。很遗憾,在注释中没有链接屏幕截图作为证据的选项。我还设置了“search.usePCRE2”:在settings.json文件中为true。如果这个表达式可以工作,我不知道为什么它不能工作,以及问题是什么。我检查了这个,当我尝试在单个文件中搜索时它也可以工作。不知道为什么它不适用于全局搜索引擎(Ctrl+Shift+F)@GoldenAge我的解决方案仍然有效,我添加了另一个屏幕。另一个解决方案没有检查行末尾的
/
。可能你没有很好地解释你的需求。我创建了与你相同的项目,你的表达式在其中正常工作,但在我的主项目中不工作。不知道为什么!这很奇怪!Anyway、 我向你投了一票。@GoldenAge好的,我明白了,这很好。让我们希望下一个版本将有一个更“稳定”和更酷的正则表达式支持。编码愉快。