В старом добром АБАПе разбор строк – достаточно муторная операция.
Вот предположим, что у нас есть строка вида:
:86:Операция:Платеж,БИК:12345678,Счет:987654
321,Контрагент:ТОО ТЕСТ,РНН:120100000001,Вып
лата за XYZ /KNP/1719311 /BCLASS/
И требуется выкусить из неё нужные значения: Контрагент, РНН и Описание операции.
Возиться с регэкспами на классах меня особенно не тянет.
Прикидываем в уме реэксп:
.*Контрагент:(.*),РНН:(\d*),(.*)/KNP/.*
Обратите внимание – круглые скобки нам отмечают несколько результатов, которые мы хотим получить.
За подробностями синтаксиса регулярных выражений – добро пожаловать в F1.
А затем на старом добром абапе используем волшебные слова:
FIND ALL OCCURRENCES OF REGEX regexp IN string RESULTS results.
В результате успешного выполнения мы получим одну запись в таблице результата:
В последнем поле строки результата находится ещё одна таблица:
И здесь уже видна карта того, что нам нужно — требуется выкусить нужные фрагменты по принципу:
НужноеЗначение = ИсходнаяСтрока+Смещение(Длина).
Выкусываем и радуемся.
А вот и текст примера (залил на Пастебин):
Результат работы программы: