Ansicht
Dokumentation
ABAPREPLACE_IN_PATTERN - REPLACE IN PATTERN
CL_GUI_FRONTEND_SERVICES - Frontend Services Vendor Master (General Section)This documentation is copyright by SAP AG.
REPLACE pattern IN
REPLACE $[${FIRST OCCURRENCE$}$| ${ALL OCCURRENCES$} OF$] pattern
IN $[section_of$] dobj WITH new
$[IN ${CHARACTER$|BYTE$} MODE$]
$[replace_options$].
Additions
1. ... ${FIRST OCCURRENCE$}$|${ALL OCCURRENCES$} OF
2. ... IN ${CHARACTER$|BYTE$} MODE
Effect
In pattern-based replacements, the data object dobj is searched 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 specified innew that allow a reference to the respective occurrence. It should be noted that, in regular replacement texts, the associated special characters $, &, `, and ´ as well as the escape character \ must be transformed to literal characters using the prefix \.
The syntax and effect of the addition section_of
are the same as searching a data object for a substring using the statement FIND,
and the same catchable 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 evaluating the statement.
Note
The statement REPLACE IN TABLE can be used to make replacements in internal tables.
Example
The result of the replacement is "$bcd$". While
$1 in the replacement pattern represents the parenthesized subgroup
bcd of the regular expression a(bcd)e,
the two \$ stand for the literal character "$".
Addition 1
... ${FIRST OCCURRENCE$}$|${ALL OCCURRENCES$} OF
Effect
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 addition FIRST OCCURRENCE 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, n, d, or t and only contains blanks, the place in front of the first character or byte of the search range is found when searching for the first occurrence, and the content of new is inserted in front of the first character or byte. When searching for all occurrences, the exception CX_SY_REPLACE_INFINITE_LOOP is raised in this case.
If regex contains a regular expression in pattern that matches the empty character string, the content of new is also inserted in front of the first character when searching for the first occurrence. When searching for all occurrences, the content of new is inserted in front of the first character in all spaces that are not in front of or inside a match, and after the last character.
Note
If the addition ALL OCCURRENCES is used, no recursive processing takes 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.
After the replacement, text contains the value "x-xx-x".
After the replacement, text still contains the substring "abcde" once.
Addition 2
... IN ${CHARACTER$|BYTE$} MODE
Effect
The optional addition IN ${CHARACTER$|BYTE$} MODE determines whether
character string or byte string
processing is performed. If the addition is not specified, character string processing is performed.
Depending on the processing type, dobj, new, and substring in pattern must be character-like or byte-like. If
regular expressions are used in pattern, only character string processing is allowed.
Note
For replacements with character-like content that contains trailing blanks, new must have the data type string.
Example
Replacement of all bytes that represent a hyphen in code page UTF-8 with bytes for an underscore.
Exceptions
Catchable Exceptions
- Cause: Substring of length 0 creates an endless loop when searching for all occurrences.
Runtime Error: REPLACE_INFINITE_LOOP
- Cause: Invalid expression after the addition PCRE$|REGEX.
Runtime Error: INVALID_REGEX
- Cause: See Exceptions in Regular Expressions.
Runtime Error: REGEX_TOO_COMPLEX
- Cause: Invalid replacement pattern after the addition WITH.
Runtime Error: INVALID_FORMAT
ABAP Short Reference PERFORM Short Reference
This documentation is copyright by SAP AG.
Length: 8498 Date: 20240420 Time: 090403 sap01-206 ( 160 ms )