Sonderzeichen für Covers Pattern definieren

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
3 Beiträge • Seite 1 von 1
3 Beiträge Seite 1 von 1

Sonderzeichen für Covers Pattern definieren

Beitrag von maclean (ForumUser / 2 / 0 / 0 ) »
Hallo,

ich habe folgendes Problem: :cry:

mit Hilfe des Vergleichsoperators CP (Covers Pattern) möchte ich, wenn
eine Zeichenfolge mit genau 3 Ziffern, gefolgt von einem Slash "/", gefolgt
von wieder genau 2 Ziffern irgendwo in einem CHAR(29) Feld gefunden wird, auf eine bestimmte Art reagieren.
Prinzip: *[0-9][0-9][0-9]/[0-9][0-9]*

Gibt es eine Möglichkeit ein Sonderzeichen zu definieren, das die Ziffern
von 0-9 repräsentiert?

Viele Grüße
maclean

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Beitrag von ewx (Top Expert / 4917 / 332 / 653 ) »
Das ist eher ein Fall für die Klasse cl_abap_matcher...

Code: Alles auswählen.

DATA: matcher TYPE REF TO cl_abap_matcher,
      match   TYPE c LENGTH 1,
      matchr  TYPE match_result,
      offset  TYPE i,
      length  TYPE i,

      oref    TYPE REF TO cx_root,
      text    TYPE string.

PARAMETERS p_pat(80) LOWER CASE.
PARAMETERS p_txt(80) LOWER CASE DEFAULT text-001.

START-OF-SELECTION.

  TRY.
      matcher = cl_abap_matcher=>create( pattern      = p_pat
                                         ignore_case  = 'X'
                                         text         = p_txt
                                         simple_regex = ' ' ).
    CATCH cx_sy_invalid_regex INTO oref.
      text = oref->get_text( ).
  ENDTRY.

  IF NOT matcher IS INITIAL.
    match = matcher->find_next( ).
  ENDIF.

  IF NOT text IS INITIAL.
    WRITE: / text.
  ELSE.
    WRITE: / 'Match:', match COLOR COL_GROUP.
    IF match = 'X'.
      matchr = matcher->get_match( ).
      DO.
        offset = matcher->get_offset( index = 0 ).
        length = matcher->get_length( index = 0 ).
        WRITE: / 'Offset:', offset.
        WRITE:  'Length:', length.
        match = matcher->replace_found( text-spc ).

        CALL METHOD matcher->find_next
          RECEIVING
            success = match
          EXCEPTIONS
            OTHERS  = 1.
        IF sy-subrc > 0 OR match = space.
          EXIT.
        ENDIF.
      ENDDO.
      write: / 'Text:', matcher->text.
    ENDIF.
  ENDIF.
Die gefundenen Ausdrücke werden durch TEXT-SPC ersetzt.

Folgender Ausdruck
'\<[[:alnum:]]+\>'
findet z.B. inf diesem String
and text = 'ABAP' and wert = 'FORUM'.
'ABAP' und 'FORUM'

Beitrag von maclean (ForumUser / 2 / 0 / 0 ) »
Danke :D

Seite 1 von 1

Vergleichbare Themen

3
Antw.
1225
Views
Multiton oder Flyweight Pattern
von Norl » 05.10.2017 15:52 • Verfasst in ABAP® für Anfänger
3
Antw.
12299
Views
Problem bei Select Abfrage mit Contains Pattern (CP)
von eddi12 » 05.03.2008 10:52 • Verfasst in ABAP® für Anfänger
6
Antw.
3253
Views
Sonderzeichen GUI Download
von Johannes9090 » 01.04.2015 11:37 • Verfasst in ABAP® für Anfänger
0
Antw.
1832
Views
Ausgabe Sonderzeichen bsp. ⅜”
von jensschladitz » 26.09.2018 21:06 • Verfasst in ABAP® für Anfänger
1
Antw.
8875
Views
Mapping Sonderzeichen
von littleJohn » 25.05.2022 14:37 • Verfasst in SAP - Allgemeines

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.