Patterns Wildcards

s.a. Regular Expressions

  1. Select

In Select können folgende Zeichen ‚_‘ und ‚%‘ abgefragt werden.

A ‚%‘ matches any string with zero or more characters.
An ‚_‘ matches any single character.

IF NOT pa_sort1 IS INITIAL.
REPLACE ALL OCCURRENCES OF ‚+‘ IN pa_sort1 WITH ‚_‘.
REPLACE ALL OCCURRENCES OF ‚*‘ IN pa_sort1 WITH ‚%‘.
ENDIF.

REPORT ztest LINE-SIZE 125 NO STANDARD PAGE HEADING.

DATA it_such TYPE adrc OCCURS 0 WITH HEADER LINE.

SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(31) text-001 FOR FIELD pa_sort1.
PARAMETERS: pa_sort1 LIKE adrc-sort1,          "Suchbegriff 1
            pa_sort2 LIKE adrc-sort2.          "Suchbegriff 2
SELECTION-SCREEN END OF LINE.

START-OF-SELECTION.
  IF NOT pa_sort1 IS INITIAL.
    REPLACE ALL OCCURRENCES OF '+' IN pa_sort1 WITH '_'.
    REPLACE ALL OCCURRENCES OF '*' IN pa_sort1 WITH '%'.
  ENDIF.
  IF NOT pa_sort2 IS INITIAL.
    REPLACE ALL OCCURRENCES OF '+' IN pa_sort2 WITH '_'.
    REPLACE ALL OCCURRENCES OF '*' IN pa_sort2 WITH '%'.
  ENDIF.

  SELECT * FROM adrc INTO TABLE it_such
    WHERE sort1 LIKE pa_sort1
       OR sort2 LIKE pa_sort2.

  LOOP AT it_such.
    WRITE: / it_such-name1, it_such-sort1, it_such-sort2.
  ENDLOOP.

Weiters gilt:

In SAP gilt das #-Zeichen als sog. Escape- oder Fluchtsymbol, mit dem auch nach [Sonder-)Zeichen wie „!“ (Ausrufezeichen), „*“ (Stern) oder nach dem #-Zeichen selbst gesucht werden kann, indem dem gesuchten Zeichen ein # vorangestellt wird; bei Suche nach # also ##.

2) Select Option

In Select-options gilt:

‚+‘ entspricht einem Zeichen.

‚*‘ entspricht einer beliebigen Zeichenfolge.

‚+‘ in einer SELECT-OPTION (mit OPTION = ‚CP‘) entspricht ‚_‘ bei LIKE …

Abfrage im Code mit:

Data: lrt_repname type range of PROGNAME,
      lrs_repname like line of lrt_repname.

lrs_repname-sign   = 'I'.
lrs_repname-option = 'CP'.
lrs_repname-low    = 'z*'.
append lrs_repname to lrt_repname.

  SELECT * FROM adrc INTO TABLE it_such
    WHERE sort1 in lrt_repname.