Ansicht
Dokumentation

ABAPREPLACE_OPTIONS - REPLACE OPTIONS

ABAPREPLACE_OPTIONS - REPLACE OPTIONS

Fill RESBD Structure from EBP Component Structure   ABAP Short Reference  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

REPLACE, options

Kurzreferenz



... $[VERBATIM$]
    $[RESPECTING$|IGNORING CASE$]
    $[REPLACEMENT COUNT rcnt$]
    ${ ${$[REPLACEMENT OFFSET roff$]
       $[REPLACEMENT LENGTH rlen$]$}
    $| $[RESULTS result_tab$|result_wa$] $} ...

Zusätze:

1. ... VERBATIM

2. ... RESPECTING$|IGNORING CASE

3. ... REPLACEMENT COUNT rcnt

4. ... REPLACEMENT OFFSET roff

5. ... REPLACEMENT LENGTH rlen

6. ... RESULTS result_tab$|result_wa

Wirkung

Diese Zusätze steuern die Anweisung REPLACE pattern IN und bieten erweiterte Möglichkeiten zur Auswertung. Mit dem Zusatz CASE wird festgelegt, ob die Groß-/Kleinschreibung bei der Suche berücksichtigt wird. Mit den Zusätzen REPLACEMENT und RESULTS können Anzahl, Position und Länge der ersetzten Folge(n) festgestellt werden.

Zusatz 1

... VERBATIM

Wirkung

Der Zusatz VERBATIM kann nur in Verbindung mit PCRE$|REGEX verwendet werden. Er bewirkt, dass alle Zeichen im Operanden new als literale Zeichen verwendet werden („verbatim“). Sonderzeichen für Ersetzungsmuster haben keine Wirkung.

Hinweis

Eine REPLACE-Anweisung mit dem Zusatz VERBATIM ist immer performanter als ohne diesen Zusatz.

Beispiel

Während in der ersten REPLACE-Anweisung die $-Zeichen eine spezielle Bedeutung als Operatoren für die Adressierung von Untergruppen haben, gilt dies nicht wenn der Zusatz VERBATIM in der zweiten REPLACE-Anweisung verwendet wird. In der dritten REPLACE-Anweisung werden die Sonderzeichen mit \ maskiert. Die Maskierung hat die gleiche Wirkung wie der Zusatz, aber der Zusatz VERBATIM ist schneller.

Zusatz 2

... ${RESPECTING$|IGNORING$} CASE

Wirkung

Dieser Zusatz ist nur bei der Zeichenkettenverarbeitung möglich. Er hat die gleiche Syntax und Wirkung wie der entsprechende Zusatz beim Durchsuchen eines Datenobjekts nach einer Unterfolge mit der Anweisung FIND. Bei Verwendung einer Instanz der Klasse CL_ABAP_REGEX ist dieser Zusatz nicht erlaubt.

Beispiel

Ersetzung aller Großbuchstaben einer Zeichenkette durch einen Backquote. Wenn IGNORING CASE angegeben wäre, würden alle Zeichen ersetzt werden.

Zusatz 3

... REPLACEMENT COUNT rcnt

Wirkung

Dieser Zusatz speichert die Anzahl der innerhalb des Datenobjekts dobj vorgenommen Ersetzungen in rcnt. Für rcnt kann angegeben werden:

  • Vorhandene Variable, für die der Datentyp i erwartet wird.
  • Eine Inline-Deklaration DATA(var) oder FINAL(var). Die deklarierte Variable hat den Datentyp i.

Wird keine Ersetzung vorgenommen, wird rcnt auf 0 gesetzt.

Hinweis

Bei Datenobjekten mit fester Länge kann die Anzahl der innerhalb des Datenobjekts dobj vorgenommen Ersetzungen kleiner als die Anzahl der Fundstellen sein.

Zusatz 4

... REPLACEMENT OFFSET roff

Wirkung

Dieser Zusatz speichert den auf das Datenobjekt dobj bezogenen Offset in roff, an der die letzte Ersetzung eingefügt wurde. Für roff kann angegeben werden:

  • Vorhandene Variable, für die der Datentyp i erwartet wird.
  • Eine Inline-Deklaration DATA(var) oder FINAL(var). Die deklarierte Variable hat den Datentyp i.

Wird keine Ersetzung vorgenommen, behält roff seinen vorhergehenden Wert bzw. bleibt initial.

Hinweise

  • Bei der Verwendung von ALL OCCURRENCES liefert REPLACEMENT OFFSET in der Regel einen anderen Wert als MATCH OFFSET bei der Anweisung FIND, da vorhergehende Ersetzungen die Position der letzten Fundstelle verschieben können.
  • Bei Datenobjekten mit fester Länge bezieht sich der Wert in roff auf die letzte Ersetzung innerhalb des Datenobjekts. Fundstellen, die durch vorhergehende Ersetzungen aus dem Datenobjekt herausgeschoben werden, spielen keine Rolle mehr.

Zusatz 5

... REPLACEMENT LENGTH rlen

Wirkung

Dieser Zusatz speichert die Länge der letzten in dobj eingefügten Unterfolge in rlen. Für rlen kann angegeben werden:

  • Vorhandene Variable, für die der Datentyp i erwartet wird.
  • Eine Inline-Deklaration DATA(var) oder FINAL(var). Die deklarierte Variable hat den Datentyp i.

Wird keine Ersetzung vorgenommen, behält rlen seinen vorhergehenden Wert bzw. bleibt initial.

Hinweis

Bei Datenobjekten mit fester Länge kann die Länge des letzten eingefügten Abschnitts kleiner als die Länge von new sein, wenn das Zwischenergebnis abgeschnitten wird.

Musterbasiertes Ersetzen aller Fundstellen der Unterfolge "know" in den Datenobjekten text1 und text2 durch "should know that". Nach der ersten REPLACE-Anweisung enthält text1 den vollständigen Inhalt "I should know that you should know that" und sy-subrc den Wert 0. Die Datenobjekte cnt, off und len enthalten die Werte 2, 23 und 16. Nach der zweiten REPLACE-Anweisung enthält text2 den abgeschnittenen Inhalt "I should know that" und sy-subrc den Wert 2. Die Datenobjekte cnt, off und len enthalten die Werte 1, 2 und 16.

Zusatz 6

... RESULTS result_tab$|result_wa

Wirkung

Wird mindestens eine Ersetzung vorgenommen, speichert der Zusatz RESULTS die Offsets der Stellen, an denen Ersetzungen vorgenommen wurden, und die Längen der eingefügten Unterfolgen entweder in einer internen Tabelle result_tab oder in einer Struktur result_wa. Syntax und Bedeutung des Zusatzes sind ansonsten wie beim gleichnamigen Zusatz der Anweisung FIND mit dem Unterschied, dass die Datentypen für result_tab und result_wa hier REPL_RESULT_TAB bzw. REPL_RESULT sein müssen, bei denen es keine Komponente SUBMATCHES gibt. Genauso wie bei FIND kann hinter RESULTS eine Inline-Deklaration DATA(var) oder FINAL(var) angegeben werden.

Beispiel

Es wird inline eine Ergebnistabelle results deklariert und mit den Eigenschaften der sieben Ersetzungsstellen versorgt.






Fill RESBD Structure from EBP Component Structure   ABAP Short Reference  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 10026 Date: 20240523 Time: 144557     sap01-206 ( 151 ms )