在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
n
和o
,每个b
递减n
,然后对每个c
递减o
,如果任一计数器仍大于零,则失败匹配( (?!)
)。