Извлеките содержимое выражения агрегации SQL в PHP с помощью выражения relugar

Я хочу извлечь содержимое внутри некоторой функции, такой как 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 распознает только первый ) и пропускает другие следующие ).

Есть ли способ или какая-либо функция помочь мне извлечь содержимое функции в случае нескольких функций?

сократите условный размер вдвое, используя шаблон без учета регистра. Итак, сколько вы исследовали рекурсивных шаблонов? Предложите образец входной строки, которая содержит несколько «совпадающих» подстрок, и укажите точный желаемый результат. Пожалуйста, покажите вашу попытку кодирования.

mickmackusa 18.12.2018 08:20

Используйте /(sum|avg|min|max|count)\((.*)\)/iregex101.com/r/zu1tjU/1

Mohammad 18.12.2018 08:21

@Mohammad Пожалуйста, никогда не публикуйте решения в виде комментариев. p.s. в вашем шаблоне нет рекурсии. (пожалуйста, удалите)

mickmackusa 18.12.2018 08:22

Ваш вопрос непонятный и неполный. Пожалуйста, улучшите свой вопрос. Искать на сайте: stackoverflow.com/questions/tagged/php+regex+recursion

mickmackusa 18.12.2018 08:25

Спасибо, что напомнили мне об этом. Я новичок в регулярном выражении. Кстати, всем спасибо. Я нашел ответ в ваших комментариях.

Duy Huynh 18.12.2018 08:27

@mickmackusa Думаю, мне этого достаточно, чтобы найти ответ. Спасибо. Как мне закрыть эту тему?

Duy Huynh 18.12.2018 08:32

Вы можете отозвать свой вопрос.

mickmackusa 18.12.2018 08:33
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
7
28
0

Другие вопросы по теме