我正在将表达式传递给有问题的MySQL查询 - Can we further simplify this MySQL query?
我想从传递的表达式中提取变量名,以便我可以动态生成SQL。 对于Eg。考虑将以下表达式作为输入。
(PA+KS)-(RR+DFS)/(DF*LK)
我们怎样才能获得上面表达式中使用的参数数组...我的意思是像这样的输出
('PA','KS','RR','DFS','DF','LK')
正则表达式有帮助吗?
答案 0 :(得分:1)
最后,我使用上面的PHP代码来提取参数名称。
$s=array('+','-','(',')','*','/');
$a="(AB+DP)-(RE*PQR)/KBS";
$a=str_ireplace($s,",",$a);
echo $a;
$a = preg_replace( '/,+/', ',', $a ); //replacing extra commas
print_r(explode(",",$a));
答案 1 :(得分:0)
如果这是您解析的唯一内容(数学运算符和大写字母变量),那么是。您只需扫描[A-Z]+
即可获得变量。
如果你需要更复杂的东西,我会选择合适的分词器。它并不难实现,大多数语言都对flex
或类似的实用程序提供某种支持。