我正在将表达式传递给问题中提到的 MySQL 查询 -我们可以进一步简化这个 MySQL 查询吗?
我想从传递的表达式中提取变量名,以便动态生成 SQL。例如。考虑以下表达式作为输入。
(PA+KS)-(RR+DFS)/(DF*LK)
我们如何获得上述表达式中使用的参数数组...我的意思是这样的输出
('PA','KS','RR','DFS','DF','LK')
正则表达式可以帮助吗?
我正在将表达式传递给问题中提到的 MySQL 查询 -我们可以进一步简化这个 MySQL 查询吗?
我想从传递的表达式中提取变量名,以便动态生成 SQL。例如。考虑以下表达式作为输入。
(PA+KS)-(RR+DFS)/(DF*LK)
我们如何获得上述表达式中使用的参数数组...我的意思是这样的输出
('PA','KS','RR','DFS','DF','LK')
正则表达式可以帮助吗?
最后,我使用上面的 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));
如果这是您解析的唯一内容(数学运算符和大写字母变量),那么可以。你可以只扫描[A-Z]+
,你会得到你的变量。
如果您需要更复杂的东西,我会选择合适的标记器。这并不难实现,大多数语言都支持flex
或类似的实用程序。