Допустим, мне нужно заменить
|x+|2x-3||
на
abs(x+abs(2x-3))
Я делаю так:
for ($i = 0; $i <= 5; $i++) {
$func = preg_replace('#\|(.+)\|#', 'abs($1)', $func);
}
Потому что просто: $func = preg_replace('#\|(.+)\|#', 'abs($1)', $func);
делает так: abs(x+|2x-3|), то есть только первое вхождение заменяет.
Может есть способ получше, чем мой?