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.
La fonction find
renvoie la position du match en integer
:
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.