正则表达式语法 菜鸟教程 正则文法和上下文无关文法区别 每次学习编译原理,总会不禁疑惑,到底什么才是正则文法,什么是上下文无关文法?区别到底在哪?我们先看个例子: 文法表示连续n个a后跟着连续n个b 咋一看好像也可以用正则表达式表示: 但是n是变化的,也就是一个正则表达式,最多匹配一个结果 究其原因,正则文法无法记录已经匹配的a的个数,用于b的匹配。正则表达式中的n是预先定义的,不是在匹配过程动态生成的。 怎么在匹配过程记录a的个数? 增加一个计数器,每次遇到一个a就加1,直到遇到b为止。每次遇到一个b,计数器就减1,直到读完所有输入,若计数器最终为0,则输入...