VS.net 的查询、替换功能也是支持正则表达式的,不过它的正则表达式跟标准的有点不同,比如::q, :b, :z {}等,这些具体的差异信息请看:http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vsintro7/html/vxgrfRegularExpressionsS.asp

我们就来看一个具体的实例:
比如我们有这样一段代码:

              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查询替换功能中的正则表达式。如下图所示:

VS.net IDE 中的查找替换功能中使用 正则表达式  

在使用选项中选择“正则表达式”,然后
查找内容为“Assert\.AreEqual\({[^,]+}, {[^\)]+}\);”;
替换内容为:“\2 = \1;”;
然后全部替换,OK,我们可以省下大量的时间干其他事情了。

如果你想反向替换,也就是把上面的结果替换为最上面的代码,这时候,
查询的内容为:“{[^:b=]*}:b*=:b*{[^;]*};”,
替换内容为:“Assert.AreEqual(\2, \1);”。

上面的范例,其实是本月北京 .net Group 活动的内容的一小部分。本月北京.net Group 活动主题是正则表达式。对.net 下正则表达式感兴趣的北京网友,建议参加这次.net Group 活动,本次活动时间 10 月 28 日下午18点半,更具体的信息请看以下连接:
  http://www.mscommunity.com/UserGroup/Discussion/default.aspx


http://blog.joycode.com/ghj/archive/2004/10/22/36295.aspx
posted on 2007-01-11 10:22  mbskys  阅读(126)  评论(0)    收藏  举报