[ABAP] Covers Pattern: Testen, ob ein String eine bestimmte Pattern enthält (Vergleichsoperator CP für zeichenartige Datentypen)

Variante 1 (Testen, ob ein String (Dateiname) auf einen bestimmten String (Dateiendung) endet (endswith))

* Dateiname
DATA(lv_filename) = |c:\\test\\file.txt|.
* Dateiendung
DATA(lv_fileext) = |txt|.

* prüft, ob lv_filename auf .lv_fileext endet
* '*' ist dabei der Platzhalter für eine bel. Anzahl Zeichen incl. Leerzeichen
IF NOT ( lv_filename CP |*.{ lv_fileext }| ).
  WRITE: / |'{ lv_filename }' endet nicht auf '{ lv_fileext }'|.
ELSE.
  WRITE: / |'{ lv_filename }' endet auf '{ lv_fileext }'|.
ENDIF.

Variante 2: (Prüft, Pattern in einem String vorkommt)

* String mit <text>-Tags
PARAMETERS: p_str type string DEFAULT '<text>ABC</text>'.
* Pattern, die auf Öffnen/Schließen-Tags prüft
DATA(lv_pattern) = |<*>*</*>|.

* prüft, Pattern in einem String vorkommt
* '*' ist dabei der Platzhalter für eine bel. Anzahl Zeichen incl. Leerzeichen
IF NOT ( p_str CP lv_pattern ).
  WRITE: / |String beinhaltet nicht die Pattern ({ lv_pattern }).|.
ELSE.
  WRITE: / |String beinhaltet die Pattern ({ lv_pattern }).|.
ENDIF.