regex - 使用正则表达式从行中剥离函数调用
问题描述
假设我有一条线,
$bagel = parser(1);
$potato = parser(3+(other var));
$avocado = parser(3-(var1+var2+var3));
$untouchedtoast = donotremove(4);
我想打印,而不是 parser(1),只打印 1。所以我想剥离函数调用(我猜是匹配 parser(.)?),但保持内部结构不变。理想情况下,输出将是
$bagel = 1;
$potato = 3+(other var);
$avocado = 3-(var1+var2+var3);
$untouchedtoast = donotremove(4);
我尝试了 %s/parser(.)//g,但它只替换了内脏左侧的所有内容。尝试了其他一些通配符,但我认为我必须以某种方式将一个变量从输入正则表达式传递到输出正则表达式,我不确定这是否可能。如果这很重要,我会在 vim 中执行此操作。
想法?
解决方案
%s/parser(\(.\+\));/\1;/
搜索,使用组parser();
提取所有内容,将整个表达式替换为组(),添加分号(因为它被搜索表达式吃掉了)。()
\(.\+\)
\1
推荐阅读
- cygwin - Cygwin 中的 Gnuplot 不会显示终端输出(未能获取当前屏幕资源 qt.qpa.xcb.xcberror: QXcbConnection: XCB error...)
- python - 已解决:Selenium 未正确填写表格
- python - 无法阻止程序打印错误
- python - Python:复制 Matlab 的 generateMesh 函数
- c# - 如何在子查询中将字符串变量设置为属性
- python - Django - 使用多种选择进行建模的 ForeignKey
- sql - 更新集的列取决于另一个
- php - 无法通过 GoDaddy 共享 Windows 主机连接到外部 MS SQL Server 数据库(IP 白名单不起作用)
- function - 在 go lang 的包级别声明 main() 之外的匿名函数会出错
- node.js - 如何设置查询以在猫鼬中选择数组元素