您可以轻松使用正则表达式来验证常规语言.我的问题是你能用它来验证一个上下文敏感的语言吗?现代正则表达式在层次结构中有多强大?
您将如何创建一个正则表达式来检查与^ nb ^ nc ^ n匹配的字符串?
以下情况应符合:
abc
aabbcc
aaabbbccc
Run Code Online (Sandbox Code Playgroud)
以下情况不符合:
abbc
aabbc
aabbbccc
Run Code Online (Sandbox Code Playgroud)
Ry-*_*Ry- 13
.NET提供了您应该可以用来执行此操作的平衡组 ; 就像是:
^(?<n>(?<o>a))*(?<-n>b)*(?<-o>c)*(?(n)(?!))(?(o)(?!))$
Run Code Online (Sandbox Code Playgroud)
递增n和o每个a递减n,每个递减b,然后o为每个递减c,然后(?!)如果任一计数器仍然大于零,则失败匹配().