Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- *&---------------------------------------------------------------------*
- *& Report ZSA_REGEX_FIND
- *&
- *&---------------------------------------------------------------------*
- *& Тест поиска строк с использованием регулярных выражений
- *&
- *&---------------------------------------------------------------------*
- REPORT zsa_regex_find.
- DATA: lt_result_tab TYPE match_result_tab.
- DATA: ls_result_tab TYPE LINE OF match_result_tab.
- DATA: ls_submatches TYPE LINE OF submatch_result_tab.
- DATA: lv_test(255) TYPE c.
- lv_test = ':86:Операция:Платеж,БИК:12345678,Счет:987654321,Контрагент:ТОО ТЕСТ,РНН:120100000001,Выплата за XYZ /KNP/1719311 /BCLASS/'.
- DATA lv_name1 LIKE lfa1-name1.
- DATA lv_stcd1 LIKE lfa1-stcd1.
- DATA lv_sgtxt LIKE bseg-sgtxt.
- FIND ALL OCCURRENCES OF REGEX `.*Контрагент:(.*),РНН:(\d*),(.*)/KNP/.*`
- IN lv_test
- RESULTS lt_result_tab.
- IF LINES( lt_result_tab ) = 1.
- READ TABLE lt_result_tab INDEX 1 INTO ls_result_tab.
- IF LINES( ls_result_tab-submatches ) = 3.
- READ TABLE ls_result_tab-submatches INDEX 1 INTO ls_submatches.
- lv_name1 = lv_test+ls_submatches-offset(ls_submatches-length).
- READ TABLE ls_result_tab-submatches INDEX 2 INTO ls_submatches.
- lv_stcd1 = lv_test+ls_submatches-offset(ls_submatches-length).
- READ TABLE ls_result_tab-submatches INDEX 3 INTO ls_submatches.
- lv_sgtxt = lv_test+ls_submatches-offset(ls_submatches-length).
- ENDIF.
- ENDIF.
- WRITE: / 'lv_name1 =', lv_name1.
- WRITE: / 'lv_stcd1 =', lv_stcd1.
- WRITE: / 'lv_sgtxt =', lv_sgtxt.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement