5

Visual Studio 2010でクイック置換を使用して、二重引用符で囲まれたテキスト以外のすべてを置換するにはどうすればよいですか。これを行うためにWildCardsまたはRegexを使用できるかどうかはわかりません。例を以下に示します。

元のコードは次のとおりです。

TypeByName("bPhone3", "9999");
TypeById("bFirstName", "Don");

そして私はテキストを次のようなものに置き換えたいと思っています:

Type("bPhone3", "9999", Selector.Name);
Type("bFirstName", "Don", Selector.Id);

私はこれを数百回の変更で行っているので、現時点ではクイック置換が唯一の本当の選択です。何かを引用符で囲み、その周りのテキストを変更する方法を見つける必要があります。

4

3 に答える 3

4

そのため、Visual Studioの検索と置換のオプションをいじくり回していましたが、これは実際には正規表現とタグ付き式を使用して可能です。私はこれを使用しました、そしてそれはあなたがリストした文字列のために働きます。

何を見つける:TypeBy{(.*)}\({"[^"]*"}, {"[^"]*"}\);

と置換する:Type(\2, \3, Selector.\1);

「正規表現を使用する」というタグを付けることを忘れないでください。

タグ付き式の詳細については、こちらをご覧ください。

編集:名前とIDの両方があることに気付いたので、少し更新しました。変更したいものの他の小さな癖によっては、他のいくつかの変更が必要になる場合があります。

于 2012-11-26T20:58:31.553 に答える
3

これは、VisualStudioの正規表現を使用して実行できます。検索と置換:

検索:TypeByName\((\".+?\"),\ (\".+?\")\);
置換:Type($1, $2, Selector.Name);

になり
TypeByName("bPhone3", "9999");ます
Type("bPhone3", "9999", Selector.Name);

編集
あなたもこれを行うことができます:

検索:TypeBy(.+)\((\".+?\"),\ (\".+?\")\);
置換:Type($2, $3, Selector.$1);

AND
TypeByName("bPhone3", "9999");になります
Type("bPhone3", "9999", Selector.Name);

TypeById("bFirstName", "Don");
Type("bFirstName", "Don", Selector.Id);

基本的にTypeBy{1}({2}, {3})Type({2}, {3}, Selector.{1})

これをVS2012でテストしたこと、およびVS2010では異なる可能性があることに注意してください

于 2012-11-26T20:57:06.240 に答える
0

シンボルを右クリックして、に移動してから移動できるリファクタリングエンジンを探しているかもしれませんrefactorrename

特定のソリューションでは、リファクタリングから始めて、デフォルトのパラメーターをいじることもできます。

public void Type(string str1, string str2, string str3 = "Default String")
{ 
    ...
于 2012-11-26T20:37:51.887 に答える