sapdev logo background
sapdev logo sapdev logo
Comments

ABAP REPLACE IN PATTERN Statement syntax, information and example SAP source code



Return to Statement index



REPLACE pattern IN

Short Reference

ABAP Syntax_1 REPLACE [{FIRST OCCURRENCE}|{ALL OCCURRENCES} OF] pattern
IN [ section_of ] dobj WITH new
[IN {CHARACTER|BYTE} MODE]
[ replace_options ].

ABAP_ADDITIONS:
1 ... {FIRST OCCURRENCE}|{ALL OCCURRENCES} OF
2 ... IN {CHARACTER|BYTE} MODE

What does it do? When replacing by pattern, the data object dobj is scanned for the character or byte strings specified in pattern and the occurrences are replaced by the content of the operand new . new is a functional operand position .
If a regular expression is used in pattern , special replacement patterns can be used in new
that permit a reference to each occurrence.
The syntax and effect of the addition
section_of are the same as searching for a substring in a data object using the statement FIND , and the same handleable exception can be raised. The addition MODE defines whether a character or byte string is processed, and the addition replace_options provides additional options for controlling and analyzing the statement.

Latest notes: The REPLACE IN TABLE statement can be used to make replacements in internal tables.

ABAP_ADDITION_1 ... {FIRST OCCURRENCE}|{ALL OCCURRENCES} OF

What does it do? The optional addition {FIRST OCCURRENCE}|{ALL OCCURRENCES} OF specifies whether only the first occurrence or all occurrences of the search pattern are replaced by the content of new
. If the FIRST OCCURRENCE addition is specified or none of the additions are specified, the first occurrence is replaced. If ALL OCCURRENCES is used, all non-overlapping occurrences are replaced.
If substring is an empty string in
pattern or is of the type c , d , n , or t and only contains blank characters, the position before the first character or byte of the search range is located when the first o
ccurrence is being searched for, and the content of new is inserted in front of the first character or byte. If a search for all occurrences is taking place, the exception
CX_SY_REPLACE_INFINITE_LOOP is raised in this case.
If regex contains a regular expression in the pattern , and this expression matches the empty character string, then the content of new is also inserted before the first character when the first occurrence is being searched for. If all occurrences are being searched for, the content of new is inserted in front of the first character, in all spaces that do not come before or inside a match, and after the last character.
Latest notes: If the addition ALL OCCURRENCES is used, no recursions take place. This means that, if the statement finds further occurrences of the search pattern, they are not replaced automatically, since this could create endless loops.

Example ABAP Coding After being replaced, text contains the value "x-xx-x".
DATA text TYPE string VALUE '-uu-'.

REPLACE ALL OCCURRENCES OF REGEX 'u*' IN text WITH 'x'.
Example ABAP Coding After being replaced, text still contains the substring "abcde" once.
DATA text TYPE string VALUE 'xxababcdcdxx'.

REPLACE ALL OCCURRENCES OF 'abcd' IN text WITH ``.

ABAP_ADDITION_2 ... IN {CHARACTER|BYTE} MODE

What does it do? The optional IN {CHARACTER|BYTE} MODE addition determines whether character string or byte string processing is carried out. If the addition is not specified, character string processing is carried out. Depending on the processing type, dobj , new , and substring in pattern have to be character-like or byte-like. If regular expressions are used in pattern , only character string processing is permitted.

Latest notes: To be replaced by character-like content that contains trailing blanks, new has to have the data type string .



Runtime Exceptions

Catchable Exceptions

CX_SY_REPLACE_INFINITE_LOOP
Reason for error: Substring of length 0 generates an endless loop when searching for all occurrences.
Runtime error: REPLACE_INFINITE_LOOP
CX_SY_INVALID_REGEX
Reason for error: Illegal expression after the addition REGEX .
Runtime error: INVALID_REGEX
CX_SY_REGEX_TOO_COMPLEX
Reason for error: More information: Exceptions in Regular Expressions .
Runtime error: REGEX_TOO_COMPLEX
CX_SY_INVALID_REGEX_FORMAT
Reason for error: Invalid replacement pattern after the addition WITH .
Runtime error: INVALID_FORMAT
Documentation extract taken from SAP system, � Copyright SAP AG. All rights reserved




REPLACE
REPLACE_IN_POSITION




comments powered by Disqus