Я хочу извлечь содержимое внутри некоторой функции, такой как SUM, AVG, COUNT выражения запроса SQL в PHP. Например, SUM(A+B)
-> A+B
или SUM(SUM(A))
-> SUM(A)
и A
.
Я использовал функцию preg_match_all
с регулярным выражением следующим образом:
#(SUM|sum|AVG|avg|MIN|min|MAX|max|COUNT|count)\((.*?)\)#
Он очень хорошо работает с одной функцией, такой как SUM(A)
, но не с многофункциональным случаем SUM(SUM(A))
. Результат SUM(SUM(A))
равен SUM(A
. Похоже, что preg_match_all
распознает только первые )
и пропускает следующие )
.
Есть ли способ или какая-либо функция помочь мне извлечь содержимое функции в случае нескольких функций?
/(sum|avg|min|max|count)\((.*)\)/i
regex101.com/r/zu1tjU/1. - person Mohammad   schedule 18.12.2018