ABAP Keyword Documentation → ABAP − Reference → Processing Internal Data → Character String and Byte String Processing → Expressions and Functions for String Processing → String Functions → Processing Functions for Character-Like Arguments
replace - Replace Function
Other versions: 7.31 | 7.40 | 7.54
Syntax Forms
-
... replace( val = text [ off = off] [len = len]
with = new ) ... -
... replace( val = text { sub = substring}|{ regex = regex}
with = new [ case = case] [occ = occ] ) ...
Effect
This function replaces a substring of text
with the character string specified in new
and returns the changed text.
The substring is determined as follows:
- The variant with the arguments
off
andlen
replaces the substring defined by the offsetoff
and the lengthlen
. At least one of these additions must be defined.
- The variant with the arguments
sub
orregex
scans thetext
for the occurrence specified inocc
for a match with the substring specified insubstring
or with a regular expression specified inregex
and replaces the occurrence. Ifocc
contains the value 0, all occurrences are replaced. Ifsubstring
is empty, an exception from the class CX_SY_STRG_PAR_VAL is raised. The search is case-sensitive by default, but this can be overridden using the parametercase
. If no substring is found, the unchanged content oftext
is returned.
new
is a character-like expression position. If they have a fixed length, trailing blanks are ignored.
The return code has the type string
accordingly.
Notes
- Borderline cases for the variants with the arguments
off
andlen
:
- If only
off
is specified or if the value 0 is specified forlen
,replace
works likeinsert
.
- If only
len
is specified or ifoff
has the value 0, the first segment of the lengthlen
is replaced.
- If the value of
off
is equal to the length oftext
, the value oflen
must be equal to 0 orlen
is not specified. The character stringnew
is then appended to the end oftext
.
- If a regular expression is used with
regex
, special replacement models that allow references to particular occurrences can be specified innew
. Note that, in regular replacement texts, the associated special characters$
,&
, `, and´
plus the escape character\
must be transformed to literal characters using the prefix\
.
Example
The result of the following replacement is "<title>Th<b>i</b>s <b>i</b>s the <i> T<b>i</b>tle</i> </title>". In an HTML line, a particular letter is placed in format tags if it is not itself in a tag.
DATA(html) = `<title>This is the <i>Title</i></title>`.
DATA(repl) = `i`.
html = replace( val = html
regex = repl && `(?![^<>]*>)`
with = `<b>$0</b>`
occ = 0 ).
Exceptions
Handleable Exceptions
CX_SY_RANGE_OUT_OF_BOUNDS
-
Cause: Illegal offset or length specified in
off
andlen
.
Runtime error:STRING_OFFSET_TOO_LARGE
CX_SY_REGEX_TOO_COMPLEX
-
Cause: More information: Exceptions in Regular Expressions.
Runtime error:REGEX_TOO_COMPLEX
CX_SY_STRG_PAR_VAL
-
Cause: Substring in
sub
or regular expression inregex
is empty.
Runtime error:STRG_ILLEGAL_PAR