Я пытаюсь превратить текст свободной формы во что-то более структурированное. У меня сложный шаблон, который соответствует большому большинству (значительно превышающему минимально допустимый предел) доступных данных, и я бы хотел использовать это, чтобы помочь структурировать данные, а не анализировать текст по-характеру. Проблема, с которой я только что столкнулась, заключается в том, что Oracle, похоже, не имеет никакого способа обработки групп захвата (если я так не пропустил это?).Группы захвата регулярных выражений в Oracle PL/SQL
Например, в моем выражении имеется несколько названных групп захвата, таких как ((?<runit_ID>\d+)-)
и (STAT_N|STTN|STAT|STN) ?(?<STAT>\w+)
. Кодовая база полностью написана в PL/SQL, поэтому я не могу использовать C# или что-то еще, чтобы ссылаться на группы захвата по имени. Как люди работают вокруг этого в PL/SQL?
Хорошо, так что теперь у меня есть что-то, что выглядит как: 'начать стат:. = Regexp_replace ('123-бла-бла, STAT А, бла',» + (STAT_N | STTN | STAT | STN) (? \\ W +) +», '\\ 2', 1,1 'я'). num: = REGEXP_replace ('123 blah blah, STAT A, blah', '(\\ d +). +', '\\ 1', 1,1, 'i'); dbms_output.put_line (stat); dbms_output.put_line (num); end; ' Раньше num и stat были названы группами захвата. Думаю, мне придется следовать этому шаблону для всех других групп. Или просто напишите функцию, которая переписывает названные группы захвата в нечто подобное. Если я получу код для этого, я отправлю его. – FrustratedWithFormsDesigner