在Visual Studio 2010中使用快速替换,如何替换除双引号括起来的所有文本。我不确定我是否可以使用WildCards或Regex来执行此操作。下面是一个例子。
以下是原始代码:
TypeByName("bPhone3", "9999");
TypeById("bFirstName", "Don");
我希望用以下内容替换文本:
Type("bPhone3", "9999", Selector.Name);
Type("bFirstName", "Don", Selector.Id);
我正在进行数百次更改,因此快速替换是我现在唯一真正的选择。我需要找到一种方法来保留引号中的任何内容并更改它周围的文本。
答案 0 :(得分:4)
所以我正在修改Visual Studio的查找和替换选项,这实际上可以使用RegEx和标记表达式。我用过这个,它适用于你列出的字符串。
查找内容:
TypeBy{(.*)}\({"[^"]*"}, {"[^"]*"}\);
替换为:
Type(\2, \3, Selector.\1);
请记住标记'使用正则表达式',你应该是金色的
有关标记表达式的更多信息,请访问here
编辑:稍微更新,因为我注意到你有名字和身份证,可能需要做一些其他的改变,这取决于你想要改变的其他小怪癖。
答案 1 :(得分:3)
您可以使用Visual Studio中的正则表达式查找和替换:
查找:TypeByName\((\".+?\"),\ (\".+?\")\);
替换:Type($1, $2, Selector.Name);
哪个会转
TypeByName("bPhone3", "9999");
进入
Type("bPhone3", "9999", Selector.Name);
修改
你也可以这样做:
查找:TypeBy(.+)\((\".+?\"),\ (\".+?\")\);
替换:Type($2, $3, Selector.$1);
哪个会转
TypeByName("bPhone3", "9999");
进入
Type("bPhone3", "9999", Selector.Name);
AND
TypeById("bFirstName", "Don");
进入
Type("bFirstName", "Don", Selector.Id);
它基本上将TypeBy{1}({2}, {3})
变为Type({2}, {3}, Selector.{1})
请注意,我在VS2012中测试了这一点,它可能与VS2010不同
答案 2 :(得分:0)
也许您正在寻找一个重构引擎,您可以右键单击某个符号,然后转到refactor
,然后转到rename
对于您的特定解决方案,您也可以从重构开始,然后使用默认参数
public void Type(string str1, string str2, string str3 = "Default String")
{
...