使用正则表达式从行调用函数调用

时间:2018-06-08 22:23:52

标签: regex vim

我们说我有一条线,

$bagel = parser(1);
$potato = parser(3+(other var));
$avocado = parser(3-(var1+var2+var3));
$untouchedtoast = donotremove(4);

我想打印而不是解析器(1),只是1.所以我想剥离函数调用(匹配解析器(。)我猜?),但内部保持不变。理想情况下,输出

$bagel = 1;
$potato = 3+(other var);
$avocado = 3-(var1+var2+var3);
$untouchedtoast = donotremove(4);

我尝试了%s / parser(。)// g,但它只替换了内部左侧的所有内容。尝试了一些其他通配符,但我想我必须以某种方式将输入正则表达式中的变量传递给输出正则表达式,并且我不确定这是否可能。如果重要,我会在vim中这样做。

思想?

2 个答案:

答案 0 :(得分:2)

std::array::operator[]

搜索%s/parser(\(.\+\));/\1;/ ,使用parser();组提取()内的所有内容,将整个表达式替换为组(\(.\+\)),添加分号(因为它被吃掉了搜索表达式)。

答案 1 :(得分:0)

试试这个:

search: \w\(|\)(?=;)
replace: blank