最近项目,生成聚合网关,但是生成的网关文件中,存在着不必要的代码段,比如一个类A,类B等
之前一直使用手动删除,这么做劳民伤财,浪费时间,考虑使用正则写一个工具实现自动删除。
正则写法:
1string pattern = @"public partial class A(\s|\S)+?(}\s*?){2}"; 2Regex regex = new Regex(sortPattern, RegexOptions.Multiline); 3text = regex.Replace(text, "");
以上可以将
1public partial class A 2{ 3 // properties 4 .... 5 public string ToJson() 6 { 7 return Newtonsoft.Json.JsonConvert.SerializeObject(this); 8 } 9}
如果遇到简单的类型代码片段,比如枚举
1public enum B 2{ 3 a = 0, 4 b = 1 5}
则可以使用
1string enumPattern = @"(?is)public enum.*?(}\s*)"; 2Regex enumRegex = new Regex(enumPattern, RegexOptions.Multiline); 3text = enumRegex.Replace(text, "");