很少使用VS的正则替换功能,最近因为需要添加大量的默认值,但是又不想重新类,就想到了这个。
1.替换带有///描述的属性
查找的正则表达式:
/// <summary>((.)*((.|\n){1,2})){1,2}///(.{1,})((.)*((.|\n){1,2})){1,2}/// </summary>((.)*((.|\n){1,2})){1,2}public string (.{1,}) { get; set; }
替换的正则表达式:
private string _$14;\n /// <summary>\n///$5\n/// </summary>\n public string $14 {\nget\n{\nif (string.IsNullOrWhiteSpace(_$14))\n{\n _$14 = ""; \n} \nreturn _$14; \n} \nset \n{\n _$14 = value; \n} \n}
其中$1...$n,代表第几个匹配项,很多时候自己计算的时候可能不正确,这样就在替换哪里写:$1;$2;....;$n这样就可以很直观知道那个是你想要的值,在上面的替换表达式中$5是注释内容,$14是属性名;
2.替换没注释的属性
查找的正则表达式:
public string (.{1,}) { get; set; }
替换的正则表达式:
\nprivate string _$1;\n/// <summary>\n///$1\n/// </summary>\n public string $1 {\nget\n{\nif (string.IsNullOrWhiteSpace(_$1))\n{\n _$1 = ""; \n} \nreturn _$1; \n} \nset \n{\n _$1 = value; \n} \n}
这里只是描述了一个简单的用法。