正则表达式匹配函数和函数调用,但不包括JavaScript关键字

时间:2014-08-13 09:03:44

标签: javascript regex vim

我有一个包含以下代码的VIM缓冲区:

function foo () {...}
foo ();
foo();
if (foo ()) {...}
function bar() {...}
bar = function () {...}
for (...) {}
bar (foo());

我只想匹配函数声明和函数调用(这意味着将排除JavaScript语句和关键字。例如ifforswitch等)最后一个字母和左括号除了function () {...}个案例。

因此,上例中匹配的部分将是:

function foo () {...}
foo ();
if (foo ()) {...}
bar (foo());

我试着这样做:

/[a-z] (

这匹配空格位于左括号的所有情况。

匹配这些案例的正则表达式是什么?

1 个答案:

答案 0 :(得分:2)

此替换适用于您的样本:

:%s/\(if\|for\|while\)\@<!\zs\s\+\ze(//g

更多信息:

:help \@<!
:help \zs
:help \ze