2012-10-21 17 views
0

我不能設置問題的更好的標題,但我的問題是這樣的:正則表達式實現兩個目標:更換和拆卸

給出一行表格:

int a,b,var1,var2; 

我需要將其轉換成一行表格

s(a);s(b);s(var1);s(var2); 

到目前爲止,我有這樣的:

s/\b(\w)[,;]/s\(\1\);/g 

但只將其轉換爲

int s(a);s(b);s(var1);s(var2); 

我需要看不到int部分。這可以使用只有一個正則表達式嗎?

回答

0

您可以同時使用正則表達式的非卡部與使它可選,如下面的例子:

$_ = "int a,b,var1,var2;"; 

s/(?:^\w+\s+)?([^;,]+)[;,]/s(\1);/g; 

print $_ 

輸出

s(a);s(b);s(var1);s(var2); 
+0

單曲/.* \ s *(\ w +)\ s * [,;]/s \(\ 1 \);/g'爲我工作。謝謝 – prongs