Я рассматриваю операторы SQL как строки и хочу подсчитать количество элементов в самом большом списке в запросе SQL. Например, следующая строка будет иметь максимальное число 5:
"select id from table where language in (\"ENGLISH\", \"SPANISH\", \"german\") and id in (1,2,3,4,5);"
Кто-нибудь знает, как это сделать с помощью регулярных выражений? Это сложно, потому что содержимое списка может быть целыми числами, строками или кортежами. Лучшее, что я смог придумать, это следующее:
Используйте https://regex101.com/r/iNOxuO/1, чтобы сначала сопоставить все списки в строке. Затем для каждого из этих совпадений выполните https://regex101.com/r/kowtrV/1, чтобы сопоставить и сосчитать каждый элемент в списке.
Проблема, с которой я столкнулся, состоит в том, что есть несколько крайних случаев (последние две строкив первой ссылке), которые избегают меня.
Спасибо!