草庐IT

aaabbbccc

全部标签

c# - 在 C# 中使用正则表达式匹配 a^n b^n c^n (例如 “aaabbbccc” )

您可以轻松地使用正则表达式来验证常规语言。我的问题是你能用它来验证上下文相关的语言吗?层次结构中的现代正则表达式有多强大?您将如何创建一个正则表达式来检查匹配a^nb^nc^n的字符串?以下情况应该匹配:abcaabbccaaabbbccc以下情况不应匹配:abbcaabbcaabbbccc 最佳答案 .NET提供balancinggroups你应该能够使用它来做到这一点;像这样的东西:^(?(?a))*(?b)*(?c)*(?(n)(?!))(?(o)(?!))$为每个a递增n和o,为每个b递减n>然后是每个c的o,如果任一计数器

php - 使用正则表达式 (PCRE) 匹配 a^n b^n c^n (例如 "aaabbbccc")

众所周知,现代正则表达式实现(最著名的是PCRE)与regulargrammars的原始概念几乎没有共同之处。.例如,您可以解析context-freegrammar的经典示例{anbn;n>0}(例如aaabbb)使用此正则表达式(demo):~^(a(?1)?b)$~我的问题是:你能走多远?是否也可以解析context-sensitivegrammar{anbncn;n>0}(例如aaabbbccc)使用PCRE? 最佳答案 受到NullUserExceptions答案的启发(他已经删除了,因为它在一个案例中失败了)我想我自己找