int pcre2_substitute(const pcre2_code *code, PCRE2_SPTR subject, " PCRE2_SIZE length, PCRE2_SIZE startoffset," " uint32_t options, pcre2_match_data *match_data," " pcre2_match_context *mcontext, PCRE2_SPTR replacement," " PCRE2_SIZE rlength, PCRE2_UCHAR *outputbuffer," " PCRE2_SIZE *outlengthptr);".
The subject and replacement lengths can be given as PCRE2_ZERO_TERMINATED for
zero-terminated strings. The options are:
PCRE2_ANCHORED Match only at the first position
PCRE2_ENDANCHORED Match only at end of subject
JOIN
PCRE2_NOTBOL Subject is not the beginning of a
line
PCRE2_NOTEOL Subject is not the end of a line
JOIN
PCRE2_NOTEMPTY An empty string is not a
valid match
JOIN
PCRE2_NOTEMPTY_ATSTART An empty string at the start of
the subject is not a valid match
PCRE2_NO_JIT Do not use JIT matching
JOIN
PCRE2_NO_UTF_CHECK Do not check for UTF validity in
the subject or replacement
JOIN
(only relevant if PCRE2_UTF was
set at compile time)
PCRE2_SUBSTITUTE_EXTENDED Do extended replacement processing
JOIN
PCRE2_SUBSTITUTE_GLOBAL Replace all occurrences in the
subject
PCRE2_SUBSTITUTE_LITERAL The replacement string is literal
JOIN
PCRE2_SUBSTITUTE_MATCHED Use pre-existing match data for
first match
PCRE2_SUBSTITUTE_OVERFLOW_LENGTH If overflow, compute needed length
PCRE2_SUBSTITUTE_REPLACEMENT_ONLY Return only replacement string(s)
PCRE2_SUBSTITUTE_UNKNOWN_UNSET Treat unknown group as unset
PCRE2_SUBSTITUTE_UNSET_EMPTY Simple unset insert = empty string
If PCRE2_SUBSTITUTE_LITERAL is set, PCRE2_SUBSTITUTE_EXTENDED,
PCRE2_SUBSTITUTE_UNKNOWN_UNSET, and PCRE2_SUBSTITUTE_UNSET_EMPTY are ignored.
If PCRE2_SUBSTITUTE_MATCHED is set, match_data must be non-NULL; its contents must be the result of a call to pcre2_match() using the same pattern and subject.
The function returns the number of substitutions, which may be zero if there are no matches. The result may be greater than one only when PCRE2_SUBSTITUTE_GLOBAL is set. In the event of an error, a negative error code is returned.
There is a complete description of the PCRE2 native API in the
HREF
pcre2api
page and a description of the POSIX API in the
HREF
pcre2posix
page.