Skip to content

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

  1. ... replace( val = text [ off = off] [len = len]
                   with = new ) ...

  2. ... 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 and len replaces the substring defined by the offset off and the length len. At least one of these additions must be defined.
  • The variant with the arguments sub or regex scans the text for the occurrence specified in occ for a match with the substring specified in substring or with a regular expression specified in regex and replaces the occurrence. If occ contains the value 0, all occurrences are replaced. If substring 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 parameter case. If no substring is found, the unchanged content of text 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 and len:

  • If only off is specified or if the value 0 is specified for len, replace works like insert.

  • If only len is specified or if off has the value 0, the first segment of the length len is replaced.

  • If the value of off is equal to the length of text, the value of len must be equal to 0 or len is not specified. The character string new is then appended to the end of text.

  • If a regular expression is used with regex, special replacement models that allow references to particular occurrences can be specified in new. 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 and len.
    Runtime error: STRING_OFFSET_TOO_LARGE

CX_SY_REGEX_TOO_COMPLEX

CX_SY_STRG_PAR_VAL

  • Cause: Substring in sub or regular expression in regex is empty.
    Runtime error: STRG_ILLEGAL_PAR