在VS中使用正则表达式替换,有时候在维护老项目,升级老项目时非常高效率
但是在VS中的正则用法会跟我们在程序中的略有区别,比如
- <>要经过转义写成\<\>
- {3}在程序中的正则表示重复3次,在VS需要写成^3
- \d 在程序中表示数字,在VS中需要写成:z,表示:([0-9]+)简写
- ([a-z]+)在程序中需要定义一个变量,在VS中则为{[a-z]+},然后使用变量时为:\1
等等。。。、
使用参照代码:http://www.jb51.cc/article/p-nbqghnvj-bh.html
示例代码:
需求:
sa.VolAvg20d = new NullableValue<double>((row[SecAttributeField.VolAvg20d])); //Original example[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.\1 sa\.{[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;原文链接:https://www.f2er.com/regex/362432.html