查找与模式匹配的行,但包含其他模式

时间:2017-01-04 18:03:27

标签: visual-studio-code

在Visual Studio Code的正则表达式语法中,是否可以找到某个字符串的所有匹配项,例如:

&$

除非有另一种模式,例如同一行中的字符串function(,例如

function functionname(&$variable, ...)

这对我不起作用:

(?!function).*\&\$ 

它只会产生所有结果,其中两行都包含function,而且没有,好像我正在对&$进行简单搜索。

VSCode's Regex help page Visual Studio的帮助页面似乎表明这就是方式,但我似乎无法让它在VS Code中的任何星座中工作,所以它似乎是应用程序正在使用不同的符号。

其他一些符号也不起作用(我认为来自不同的正则表达式)我已经用Google搜索了。

1 个答案:

答案 0 :(得分:3)

此正则表达式可能有效:

^(?!.*function\().*(\&\$)

第一组中捕获了&$$1

输入:

a &$ b
a &$ function()
a &$ function()
function() &$ a
a function() &$ a

使用此正则表达式仅匹配第一行的&$

正则表达式的工作原理是使用负向前瞻以确保该行不包含字符串function(。这个前瞻必须固定在行的开头,这就是.*是必需的原因。而且,这只会匹配每行一个事件

enter image description here