1

ある言語から別の言語に多くのコード行を移植する際に、関数呼び出しの形式からx.get(y)角括弧表記へのすべての配列アクセスを置き換える必要がありますx[y]正規表現ベースの replaceを実行できるテキスト エディターはほとんどありません。

この場合、「検索するテキスト」フィールドには何を入力し、「置換」フィールドには何を入力する必要がありますか? xとの両方yが異なる可能性があるため、元のコードには次のような行が含まれる可能性があります。

... state.get(1);
... text.get(i);
... result.get(line);

変換後:

... state[1];
... text[i];
... result[line];
4

2 に答える 2

4

を検索し\.get\((\w+)\)て置換できます[$1]

上記のパターンでは、括弧内に英数字のみを想定していますが、他の代替手段があります。

  • .*(「.matched newline」をチェックせずに)行末まで一致する必要があります。
  • [^)]*ではない文字と一致する必要があり)ます。新しい行で機能します。

どちらの場合も、パターンに を含めることができます。;

これはどちらにしても非常に脆弱であることに注意してください - のようなコードに遭遇するかもしれませんstate.get(a.get(3 + sin(6))).

于 2013-10-02T05:20:16.673 に答える
1

Notepad++ の場合、Find what に次のように記述します。([0-9,a-z,A-Z,-,_]+).get\(([0-9,a-z,A-Z,-,_]+)\)

と置換する\1[\2]

入力:

x.get(1);
text.get(i);
result.get(line);

出力:

x[1];
text[i];
result[line];

ここに画像の説明を入力

于 2013-10-02T05:17:08.837 に答える