Replace Method (REGEX)


 

The Replace method is used to replace a matching substring using the stored regular expression in the associated PL/B REGEX object. This method uses the following format:

 

 

[label]

{object}.Replace

[GIVING {return}] USING [*Text=]{text}:

 

 

[*Value=]{value}[:

 

 

[*Options=]{options}]

 

Where:

label

Optional. A Program Execution Label.

object

Required. A REGEX object previously declared.

return

Optional. A Character String Variable that returns the text with the first match replaced.

text

Required. A Character String Variable or literal that specifies the text to examine.

value

Required. A Character String Variable or literal that specifies the replacement text.

options

Optional. A decimal number or Numeric Variable that has a bit mask value described below.

Flags Affected: EOS, OVER, ZERO

Notes:

  1. The EOS flag is set if the returned data string is larger than the DIM variable used to receive the data.

  2. The OVER and ZERO Condition Flags are always cleared.

  3. The {text} parameter contains the character string to be searched.

  4. The search pattern used is the currently compiled pattern.

  5. The {value} parameter contains the replacement text.

  6. The {value} parameter may be empty to remove the first matched substring.

  7. The {value} parameter replacement text supports \0, \1..\9, $0, $1..$9, ${n}, $$, \&, \\ and & .

  8. The {return} value is the {text} parameter with the first match replaced.

  9. A zero-length match counts as a match.

  10. If no match is found, the original {text} parameter is returned unchanged.

  11. If no matches are found the GetMatch method will return an empty string.

  12. If a match is found the GetMatch method will return the replaced substring.

  13. The {options} bit mask values found in plbmeth.inc are defined as follows:

  14.  

    Equate

    Value

    Description

    $REGEX_OPT_NOCASE

    1

    Case-insensitive (ASCII A-Z only)

    $REGEX_OPT_MULTILINE

    8

    ^ and $ also match at line breaks

    $REGEX_OPT_DOTALL

    16

    . also matches CR and LF

    $REGEX_OPT_NOTEMPTY

    32

    Reject empty (zero-length) matches

  15. The {options} given to Compile method also apply.

 

Example 1:

 

      RegEx1.Compile Giving N Using "Alice"

      RegEx1.Replace Giving S Using "Alice Smith and Alice Jones","Bob"

 

      Result: Bob Smith and Alice Jones

 

Example 2:

 

      RegEx1.Compile Giving N Using "Alice"

      RegEx1.Replace Giving S Using "Alice Smith and Alice Jones","Bob and \1"

 

      Result: Bob and Alice Smith and Alice Jones

 

Example 3:

 

      RegEx1.Compile Giving N Using "(\d{3})-(\d{3})-(\d{4})"

      RegEx1.Replace Giving S Using "555-123-4567","($1) $2-$3"

 

      Result: (555) 123-4567

 

 

See Also: Method Syntax, REGEX, Regular Expression Support



PL/B Language Reference