正则表达式可以解决这个吗我们如何获得表达式中使用的参数数组?

时间:2013-06-19 10:59:54

标签: mysql regex

我正在将表达式传递给有问题的MySQL查询 - Can we further simplify this MySQL query?

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

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

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

正则表达式有帮助吗?

2 个答案:

答案 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或类似的实用程序提供某种支持。