comp • gb.pcre • regexp • replace

RegExp.Replace (gb.pcre)

Static Function Replace ( Subject As String, Pattern As String, Replace As String [ , CompileOptions As Integer, ExecOptions As Integer ] ) As String

Since 3.5

Find all occurences of the specified Pattern in the Subject, and return a string where they are all replaced by the Replace string.

If the Pattern has submatches, then they can be substituted in the Replace string, by using the same syntax as the Subst$ function: &1 is replaced by the first submatch, &2 by the second, and so on.

The pattern is always compiled by default with the Ungreedy compile flag set, i.e. the greediness of all quantifiers is inverted. In particular the "+" and "*" quantifiers are ungreedy.

Since 3.9.3

You can turn this behavior off by setting the RegExp.Greedy flag in CompileOptions.

Because the greediness of quantifiers is reversed by default, it is advisable not to confuse your future self and to avoid ungreedy versions of quantifiers, i.e. "+?" and "*?", if possible. Set the RegExp.Greedy flag instead.

Examples

Print RegExp.Replace("How much wood would a woodchuck chuck if a woodchuck could chuck wood ?", "(chuck|wood)", "[&1 norris]")
How much [wood norris] would a [wood norris][chuck norris] [chuck norris] if a [wood norris][chuck norris] could [chuck norris] [wood norris] ?

See also