在C#中使用正则表达式匹配^ nb ^ nc ^ n(例如“aaabbbccc”)

您可以轻松使用正则表达式来validation常规语言。 我的问题是你可以用它来validation上下文敏感的语言吗? 现代正则表达式在层次结构中有多强大?

您将如何创建一个检查与^ nb ^ nc ^ n匹配的字符串的正则表达式?

以下情况应符合:

abc aabbcc aaabbbccc 

以下情况不符合:

 abbc aabbc aabbbccc 

.NET提供了您应该可以用来执行此操作的平衡组 ; 就像是:

 ^(?(?a))*(?<-n>b)*(?<-o>c)*(?(n)(?!))(?(o)(?!))$ 

增加每个a no ,每个b递减n ,然后对每个c递减o ,如果任一计数器仍大于零,则失败匹配( (?!) )。