Suchmuster mit Regex

Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Getting started ... Alles für einen gelungenen Start.
3 Beiträge • Seite 1 von 1
3 Beiträge Seite 1 von 1

Suchmuster mit Regex

Beitrag von crishi_crd (ForumUser / 12 / 14 / 0 ) »
Guten Morgen zusammen,

ich versuche mir gerade einen Report zu bauen, der die Eingabe eines Such- und Ersetzungsmusters ermöglicht.
Dieser Report bekommt beim Start über einen Parameter einen Methodennamen mit, die er nach einem bestimmten Suchmuster durchsuchen soll.
Das Suchmuster setzt sich aus Buchstaben und Regex zusammen:
Beispiel:
ich habe folgende Methode:

Code: Alles auswählen.

  lo_buagrhd->retrieve_single(
    EXPORTING
      is_buagrhd_key = ls_buagrhd_key
      iv_lock_mode   = sc_lock_mode_none
    IMPORTING
      es_buagrhd     = ls_buagrhd.
Aus dieser Methode ergibt sich meiner Meinung nach folgendes Suchmuster:

Code: Alles auswählen.

  lo_(\w+)->retrieve_single\(
    EXPORTING
            is_\w+_key\s+=\s+([\w\-]+)
     iv_lock_mode\s+=\s+sc_lock_mode_none
    IMPORTING
      es_\w+\s+=\s+([\w\-])+
Wenn ich dieses mit dem Demo Programm DEMO_REGEX_TOY teste, findet er keine Treffer.
Wenn ich allerdings jede Zeile einzeln eingebe, werden Übereinstimmungen gefunden.
Beispiel:

Ich gebe nur

Code: Alles auswählen.

lo_(\w+)->retrieve_single

ein. Dann wird die erste Zeile der Methode gefunden.

Ich habe das Gefühl, als wenn sich das Suchen mit Zeilenumbrüchen schwer tut?

Villt. kann ja jemand helfen.

LG

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


Re: Suchmuster mit Regex

Beitrag von a-dead-trousers (Top Expert / 4396 / 223 / 1182 ) »
Hi!

Ich glaub mit [[:space:]]* kannst du bliebig viele Leerzeichen/Zeilenumbrüche erkennen.
Probier mal, das in die Leerräume zwischen den einzelnen Segmenten deiner Regex einzufügen:
lo_(\w+)->retrieve_single\([[:space:]]*EXPORTING[[:space:]]*is_\w+_key\s+=\s+([\w\-]+)[[:space:]]*iv_lock_mode\s+=\s+sc_lock_mode_none[[:space:]]*IMPORTING[[:space:]]*es_\w+\s+=\s+([\w\-])+

evtl. könntest du auch noch beim FIND bzw. REPLACE-Befehl die Groß-/Kleinschreibung ignorieren lassen.

lg Matthias

Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
crishi_crd

Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: Suchmuster mit Regex

Beitrag von crishi_crd (ForumUser / 12 / 14 / 0 ) »
Danke!
Ich habe es dann aber doch anders gelöst.
1. habe ich den Quelltext der Methode in einen String geschrieben. Denn ABAP unterstützt anscheind das mehrzeilge Suchen nicht.
2. hab ich mit dem Befehl Condense alle Leerzeichen aus dem Suchmuster geschmissen.
3.Mein Suchmuster sieht nun so aus:

Code: Alles auswählen.

lo_(\w+)->retrieve_single\(\S+EXPORTING\S+\s+is_\w+_key\s+=\s+([\w\-]+)\S+\s+iv_lock_mode\s+=\s+sc_lock_mode_none\S+IMPORTING\S+\s+es_\w+\s+=\s+(\w+\_\w+)\S+EXCEPTIONS\S+\s+error\s+=\s+\d\S+\s+OTHERS\s+=\s+\d\s+\)\.\S+IF\s+sy-subrc\s+<>\s+\d\.\S+\s+mac_msg_add_sy\.\S+ENDIF\.
Nicht wundern wenn dort jetzt mehr drin steht. Es kamen noch ein paar Zeilen aus der Methode dazu.

LG

Seite 1 von 1

Vergleichbare Themen

12
Antw.
9474
Views
Regex für /xA0
von Thomas R. » 13.11.2013 12:13 • Verfasst in ABAP® für Anfänger
4
Antw.
2886
Views
REGEX Frage
von Eddi » 18.01.2008 02:48 • Verfasst in ABAP® Core
5
Antw.
3766
Views
REGEX lookahead
von ewx » 09.05.2012 11:26 • Verfasst in ABAP® Core
1
Antw.
2171
Views
XML Parser mit REGEX
von Adrian » 27.12.2013 09:23 • Verfasst in ABAP® für Anfänger
17
Antw.
4240
Views
Regex in FIND
von hugo.data » 22.10.2018 15:33 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

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

Aktuelle Forenbeiträge

Dialog-Container mit Toolbar/Status
vor 17 Stunden von black_adept gelöst 23 / 3811
User Exit EXIT_RQCPRM10_001
vor 18 Stunden von a-dead-trousers 2 / 321
Trennen Strasse und Hausnummer
Gestern von payten 13 / 10690
Daten an Tabelle binden
Gestern von Lukas Sanders 2 / 1374

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.

Aktuelle Forenbeiträge

Dialog-Container mit Toolbar/Status
vor 17 Stunden von black_adept gelöst 23 / 3811
User Exit EXIT_RQCPRM10_001
vor 18 Stunden von a-dead-trousers 2 / 321
Trennen Strasse und Hausnummer
Gestern von payten 13 / 10690
Daten an Tabelle binden
Gestern von Lukas Sanders 2 / 1374

Unbeantwortete Forenbeiträge

aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2904
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9499