function replace(string: Array(String), start_position: Number(gint), replacement: String, match_options: GLib.RegexMatchFlags): String {
    // Gjs wrapper for g_regex_replace()

Replaces all occurrences of the pattern in regex with the replacement text. Backreferences of the form '\number' or '\g<number>' in the replacement text are interpolated by the number-th captured subexpression of the match, '\g<name>' refers to the captured subexpression with the given name. '\0' refers to the complete match, but '\0' followed by a number is the octal representation of a character. To include a literal '\' in the replacement, write '\\'.

There are also escapes that changes the case of the following text:

- \l: Convert to lower case the next character - \u: Convert to upper case the next character - \L: Convert to lower case till \E - \U: Convert to upper case till \E - \E: End case modification

If you do not need to use backreferences use GLib.Regex.prototype.replace_literal.

The replacement string must be UTF-8 encoded even if #G_REGEX_RAW was passed to If you want to use not UTF-8 encoded stings you can use GLib.Regex.prototype.replace_literal.

Setting start_position differs from just passing over a shortened string and setting #G_REGEX_MATCH_NOTBOL in the case of a pattern that begins with any kind of lookbehind assertion, such as "\b".

Since 2.14


the string to perform matches against


starting index of the string to match


text to replace each match with


options for the match


a newly allocated string containing the replacements