VS 中正则表达式替换Code

来源:互联网 发布:沙盘模拟软件 编辑:程序博客网 时间:2024/05/17 06:47

在VS中使用正则表达式替换,有时候在维护老项目,升级老项目时非常高效率

但是在VS中的正则用法会跟我们在程序中的略有区别,比如

  • <>要经过转义写成\<\>
  • {3}在程序中的正则表示重复3次,在VS需要写成^3
  • \d 在程序中表示数字,在VS中需要写成:z,表示:([0-9]+)简写
  • ([a-z]+)在程序中需要定义一个变量,在VS中则为{[a-z]+},然后使用变量时为:\1

等等。。。、


使用参照代码:http://blog.csdn.net/feihu_guest/article/details/18036133

示例代码:

需求:

sa.VolAvg20d = new NullableValue<double>((row[SecAttributeField.VolAvg20d])); //Originalexample[dbName] = sec.VolAvg20d.HasValue ? sec.VolAvg20d.Value : 0.0d; //Target
正则:

sa\.{[a-zA-Z0-9_]+} = new NullableValue\<double\>\(\(row\[SecAttributeField\.[a-zA-Z0-9_]+\]\)\)example[dbName] = sec.\1.HasValue ? sec.\1.Value : 0.0d

其他例子:

columns.Contains\(SecAttributeField\.{[^)]+}\)secColumName == SecAttributeField.\1sa\.{[a-zA-Z0-9_]+} = row\[SecAttributeField\.{[a-zA-Z0-9_]+}\] is DBNull \? string\.Empty \: row\[SecAttributeField\.{[a-zA-Z0-9_]+}\]\.ToString\(\);example[dbName] = sec.\1 ?? string.Empty;