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, "");