abap:regex
Table of Contents
Regex
Caractères spéciaux
Les ancres de fin de ligne ($
) fonctionnent en accord avec le fonctionnement des chaines de caractères dans SAP : en cas de chaine de longueur fixe, un pattern ne matchera que si on prend en compte les trailing blanks (par exemple en terminant le pattern par ' *$' plutôt que seulement '$'):
DATA f(6). f = 'T01'. IF find( val = f = '^T\d{2} *$' ) >= 0. " Your process ENDIF.
Fonction prédéfinie
La fonction find
renvoie la position du match en integer
:
- -1 si pas de match
- 0 si début de la chaine
- 1, n sinon
cl_abap_matcher
IMPORTANT : Pour utiliser le matcher, il faut que la regex couvre tout le texte (genre commencer et finir par .*
si les subgroups intéressants ne couvrent pas tout le texte) !
DATA(matcher) = cl_abap_matcher=>create( pattern = '^/category/([0-9]{1,5})/item/([0-9]{1,2})$' text = '/category/12345/item/12' ignore_case = abap_true ). IF abap_true = matcher->match( ). * erstes Match WRITE: / matcher->get_submatch( 1 ). * zweites Match WRITE: / matcher->get_submatch( 2 ). ENDIF.
abap/regex.txt · Last modified: 2021/07/23 18:23 by ginko