2

私はかなり大きなプロジェクト (c#) に取り組んでおり、場所によっては次のようなスニペットがあります。

((int)foo).ToString() + "," + ((int)bar).ToString() + "," + ((int)zig).ToString() + ...

コンマで区切られた文字列の長さは任意です (平均的な範囲は 1 から 5 ですが、それ以上あるかどうかはわかりません)。これまでのところ、使用したいすべてのオカレンスを見つけることができます:

\({.+}\).ToString\(\)( *\+ *"," *\+ *\({.+}\).ToString\(\))*

出現ごとに、次のようなものに置き換えたいと思います。

{ (int)foo, (int)bar, (int)zig , ...}

各オカレンスを手動で置き換えることは現実的ではありません。仕事をする置換正規表現はありますか?

ありがとう

4

2 に答える 2

0

はい、正規表現を使用して Visual Studio で検索と置換を行うことができます。

簡単に言うと、タグ付けされた式に中括弧を使用し\1\2、 などを使用してそれらを再利用する必要があります。

于 2013-02-15T17:35:21.510 に答える
0

私はあなたの質問を誤解しているかもしれませんが、あなたはすでに答えを得ているようですSystem.Text.RegularExpressions.Regex.Replace(string, string)... きめ細かな制御が必要な場合は、キャプチャを名前でラップすることを検討してください: \((?<foo>.+)\)(またはインデックスを使用します)。これらのキャプチャを使用すると、必要に応じて、一致をループしてキャプチャを反復処理することにより、手動で置換を行うことができます。

于 2013-02-15T17:39:33.433 に答える