0

我正在将表达式传递给问题中提到的 MySQL 查询 -我们可以进一步简化这个 MySQL 查询吗?

我想从传递的表达式中提取变量名,以便动态生成 SQL。例如。考虑以下表达式作为输入。

(PA+KS)-(RR+DFS)/(DF*LK)

我们如何获得上述表达式中使用的参数数组...我的意思是这样的输出 ('PA','KS','RR','DFS','DF','LK')

正则表达式可以帮助吗?

4

2 回答 2

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));
于 2013-06-19T11:53:57.273 回答
0

如果这是您解析的唯一内容(数学运算符和大写字母变量),那么可以。你可以只扫描[A-Z]+,你会得到你的变量。

如果您需要更复杂的东西,我会选择合适的标记器。这并不难实现,大多数语言都支持flex或类似的实用程序。

于 2013-06-19T11:04:37.707 回答