正则表达式之二:匹配所有不超过一层嵌套尖括符的字符集

有时候为了对WIX 文件内容的不同元素进行特别处理,就要将其内容先分离再各个处理,比如如下一段内容:

 

 

 

我们希望将它分离成如下三段:

 

段一:

 

段二:

 

段三:

 

这时我们就可以用正则表达式 [^<]*<(?:[^<>]|<[^<>]*>)*> 来实现。

部分实现代码如下(C#)

 

 

 // Generic pattern // use regular expressions to split the content to items in below two formats: // a, "*<..>" // b, "*<..<..>..>" // pattern to match all "*<..>" or "*<..<..>..>" items. // However, this works only if: // • braces are always balanced, and // • the level of brace nesting is no more than one. string _genericPattern = @"[^<]*<(?:[^<>]|<[^<>]*>)*>"; MatchCollection matchedResult = Regex.Matches(oldFileContent, _genericPattern);

你可能感兴趣的:(Build&Setup)