Как получить повторяющиеся данные из строки Oracle, используя для этого уникальное регулярное выражение? - PullRequest
0 голосов
/ 18 января 2019

Мое требование - иметь регулярное выражение, в котором мои данные открываются одним тегом, но имеют несколько закрывающих тегов

Данные столбца в таблице выглядят так:

% tag1% % Data1 %% tag2% % Data2 %% tag2% % Data3 %% tag2%

Я попытался / g в своем регулярном выражении для глобального поиска, но это не сработало.

Мой запрос оракула выглядит так:

select regexp_substr(column_data, '(%tag1%)(.+?)%tag2%',1,1,'n')) from table;

Я хочу получить данные1, данные2 и данные3 из таблицы в трех разных строках.

Здесь важно то, что регулярное выражение должно рекурсивно анализировать второй тег.

% tag1% (получить эти данные)% tag2%

% tag1% ...% tag2% (получить эти данные)% tag2%

% tag1% ...% tag2% ...% tag2% (получить эти данные)% tag2%

.. и так далее ...

Я могу получить только первое вхождение.

Может ли кто-нибудь помочь мне получить эти данные в одном запросе выбора? Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...