for(int i=0; i<oldmethod(a, 7); i++) {
sum += oldmethod(b*b+i-3, i%a);
---->
for(int i=0; i<newmethod(7, 0, a); i++) {
sum += newmethod(i%a, 0, b*b+i-3);
私は持っています
sed 's/old(\([-a-zA-Z 0-9./*+]*\),\([-a-zA-Z 0-9./*+]*\))/new(\2, 0, \1)/'
ただし、次の最初の古い方法のみが変更されます。
for(int i=0; i<newmethod(7, 0, a); i++) {
sum += oldmethod(b*b+i-3, i%a);
ベストアンサー1
2行目のパラメータの1つはですi%a
。%
文字クラスに含まれていないため、正規表現と一致しません[-a-zA-Z 0-9./*+]
。努力する
sed 's/oldmethod(\([-a-zA-Z 0-9./*+%]*\),\([-a-zA-Z 0-9./*+%]*\))/newmethod(\2, 0, \1)/'
_
変数名や他の関数(
へのネストされた呼び出しなど、考慮していない他の文字を使用することが多い場合があります。)
このような使用が発生した場合は、サブ式を拡張し続ける必要があります。