[ABAP] Textpatterns in Strings mittles Vergleichsoperator CP (Covers Pattern) suchen

* https://www.berater-wiki.de/Vergleichsoperatoren_Zeichen
* Variante 1 (Wildcard)
DATA(lv_test) = |abc-123|.

IF lv_test CP '*-*'.
  WRITE: / '- in der Mitte.'.
ELSE.
  WRITE: / 'kein - in der Mitte'.
ENDIF.

* Variante 2 (bestimmtes Zeichen)
DATA(lv_test) = |abc-123|.

IF lv_test CP 'ABC-*'.
  WRITE: / 'Schema ABC-XXX'.
ELSE.
  WRITE: / 'kein Schema ABC-XXX'.
ENDIF.

* Variante 3 (bestimmtes Zeichen)
DATA(lv_test) = |abc-1234|.

IF lv_test CP '+++-+++'.
  WRITE: / 'Schema XXX-XXX'.
ELSE.
  WRITE: / 'kein Schema XXX-XXX'.
ENDIF.

[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.