信息交流、传播、提炼

nice to meet you

博客园 首页 新随笔 联系 订阅 管理

比如我们有这样一段代码:
              Assert.AreEqual(null, property._AcquiredDate);
              Assert.AreEqual(null, property._AcreageNumber);
              Assert.AreEqual("San Jose", property._City);
              Assert.AreEqual(null, property._Country);
              Assert.AreEqual("Santa Clara", property._County);
              Assert.AreEqual(null, property._DETAILS);
              Assert.AreEqual("1", property._FinancedNumberOfUnits);
我们想通过替换的方式,把它变成下面这样的代码:
              property._AcquiredDate = null;
              property._AcreageNumber = null;
              property._City = "San Jose";
              property._Country = null;
              property._County = "Santa Clara";
              property._DETAILS = null;
              property._FinancedNumberOfUnits = "1";
这个需求,在写单元测试的时候,会发现经常需要用到。要实现这个功能,我们就可以使用VS.net查询替换功能中的正则表达式.

在使用选项中选择“正则表达式”,然后
查找内容为“Assert\.AreEqual\({[^,]+}, {[^\)]+}\);”;
替换内容为:“\2 = \1;”;
然后全部替换,OK,我们可以省下大量的时间干其他事情了。
如果你想反向替换,也就是把上面的结果替换为最上面的代码,这时候,
查询的内容为:“{[^:b=]*}:b*=:b*{[^;]*};”,
替换内容为:“Assert.AreEqual(\2, \1);”。

 

Reflector export出来的code对于set、get转化为set_func、get_func,而不是C#的set{}get{},对此,可以采用正则表达式予以查找替换:

set_:

\.set_{[^\(]+}\({[^\)]+}\) 替换为 \.\1=\2

get_:

\.get_{[^\(\)]+}\(\) 替换为 \.\1

posted on 2010-05-29 23:27  seeyou  阅读(875)  评论(0)    收藏  举报