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
offandlenreplaces the substring defined by the offsetoffand the lengthlen. At least one of these additions must be defined.
- The variant with the arguments
suborregexscans thetextfor the occurrence specified inoccfor a match with the substring specified insubstringor with a regular expression specified inregexand replaces the occurrence. Ifocccontains the value 0, all occurrences are replaced. Ifsubstringis 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 oftextis 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
offandlen:
- If only
offis specified or if the value 0 is specified forlen,replaceworks likeinsert.
- If only
lenis specified or ifoffhas the value 0, the first segment of the lengthlenis replaced.
- If the value of
offis equal to the length oftext, the value oflenmust be equal to 0 orlenis not specified. The character stringnewis 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
offandlen.
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
subor regular expression inregexis empty.
Runtime error:STRG_ILLEGAL_PAR