C#正则实现匹配一块代码段

最近项目,生成聚合网关,但是生成的网关文件中,存在着不必要的代码段,比如一个类A,类B等

之前一直使用手动删除,这么做劳民伤财,浪费时间,考虑使用正则写一个工具实现自动删除。

正则写法:

string pattern = @"public partial class A(s|S)+?(}s*?){2}";
Regex regex = new Regex(sortPattern, RegexOptions.Multiline);
text = regex.Replace(text, "");

  

以上可以将

public partial class A
{
   // properties
  ....
  public string ToJson() 
  {
     return Newtonsoft.Json.JsonConvert.SerializeObject(this);
  }
}

如果遇到简单的类型代码片段,比如枚举

public enum B
{
  a = 0,
  b = 1
}

则可以使用

string enumPattern = @"(?is)public enum.*?(}s*)";
Regex enumRegex = new Regex(enumPattern, RegexOptions.Multiline);          
text = enumRegex.Replace(text, "");

  

原文地址:https://www.cnblogs.com/walt/p/11390407.html