dmlogv
@dmlogv
Универсальный человек

Как адекватно распарсить SQL с помощью RegEx?

Доброй ночи.

Имеется пачка неких SQL-INSERT'ов из которых методом научного парсинга необходимо вычленить следующее:
  • Имена таблиц, куда инсёртятся данные (простите за японский), включая OPENQUERY,
  • Откуда данные засасываются для инсёртов. Включая те же OPENQUERY плюс подзапросы, JOIN (включая кросс-соединения через запятую, вплоть до таблиц).

Все выражения — однострочные, без лишних пробелов, табов, комментариев. В парсер поступают по одному.

Вот здесь: regex101.com/r/iS2fK9/1 моя копрокодистая реализация, но задумка должна быть ясна + пример запроса.

Все бы в «реализации» хорошо, да только затягивает она либо первый FROM с его таблицей, либо последний (JOIN) — если использую жадную квантификацию.

Есть ли способы это победить? Или я, может, вообще не теми средствами взялся за проблему?
  • Вопрос задан
  • 814 просмотров
Пригласить эксперта
Ответы на вопрос 1
Taraflex
@Taraflex
Ищу работу. Контакты в профиле.
распарсить SQL с помощью RegEx

Никак.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы