我试图将数学表达式分解成几块,我试图用正则表达式/\([^)]+\)/
来做诡计(found here)。但是读取的回答,我明白,这个表达式将搜索第一个右括号)完成,给我的麻烦操作时,例如:用于分解多项式表达式的正则表达式
(2*x^2 + 5*x - (2*x - 3)^(1/2))/(1 + x)
^ ^ ^
START IGNORE FINISH
因为我不是来了真的很好与正则表达式,我想知道我是否应该与strpos
,substr
和str_replace
处理此问题,还是有一个不同的正则表达式适用于preg_match_all并得到正确的括号集?
注:此函数将递归以解决内括号。
编辑:
我在这种情况下,预计产量:
$array = null;
$expression = '(2*x^2 + 5*x - (2*x - 3)^(1/2))/(1 + x)';
$expression = str_replace(' ', '', $expression);
preg_match_all('MAGIC EXPRESSION HERE', , $array);
print_r($array);
// Output
array(
[0] => (2*x^2+5*x-(2*x-3)^(1/2))
[1] => (1+x)
)
感谢。
您的预期产出是? – 2014-10-03 15:41:29
@AvinashRaj我发誓我看到你在每个正则表达式相关的问题,哈哈 – 2014-10-03 15:41:50
我在主要文本添加预期的输出。 – 2014-10-03 15:45:02