我有以下的正則表達式:匹配在Perl的正則表達式第一端支架
perl -pi -w -e "s/(\bgetnitemc)\(([^,]+),([^,]+)\)/\$1\(\$2,\$3,1,1,''\)/g;" d_*.sas
它具有以下影響(git的差異):
- if getnitemc(l_sub2,'OBJTYPE') = 'SLIST' then
- l_tempa = insertc(l_tempa,getnitemc(l_sub2,'OBJNAME'));
+ if getnitemc(l_sub2,'OBJTYPE',1,1,'') = 'SLIST' then
+ l_tempa = insertc(l_tempa,getnitemc(l_sub2,'OBJNAME'),1,1,'');
所以對於第一線的行爲正在按期望。但是,在第二行中,我試圖添加的部分(,1,1,''
)應用於包裝函數(insertc
),而不是目標函數(getnitemc
)。如果你能看到我的意思,那就是'跳過一個括號'。
我哪裏錯了?