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部分を見ない必要があります。正規表現を1つだけ使用してこれを行うことはできますか?

4

1 に答える 1

0

以下の例のように、正規表現の非キャッチ部分をオプションにして使用できます。

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

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

print $_

出力

s(a);s(b);s(var1);s(var2);
于 2012-10-21T17:57:36.913 に答える