我们需要使用正则表达式来查找表达式是否正确,它还包括检查“if statements”的格式,例如:case1:
if(x==1)
x = x+1;
会说正确。案例2:
else x=x+1;
会说假,因为“如果部分”丢失了
您无法使用正则表达式解析代码。
想想以下,你有一个简单的数学表达式:
((x+y))+z...
任意多的括号,你将如何将它与正则表达式匹配?你需要某种形式的记忆,而普通语言没有。
你不能。更正式地说,可以证明(使用 pidgeon-hole 原理)语言A*B*
(其中 * 是Kleene 星号)是不规则的。(不止如此,regex的常见方言无法解析)
正则表达式不是正确的工具。你会想要更接近解析器生成器的东西。