112 lines
4.8 KiB
HTML
112 lines
4.8 KiB
HTML
<html>
|
|
<head>
|
|
<title>pcre2_substitute specification</title>
|
|
</head>
|
|
<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
|
|
<h1>pcre2_substitute man page</h1>
|
|
<p>
|
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
|
</p>
|
|
<p>
|
|
This page is part of the PCRE2 HTML documentation. It was generated
|
|
automatically from the original man page. If there is any nonsense in it,
|
|
please consult the man page, in case the conversion went wrong.
|
|
<br>
|
|
<br><b>
|
|
SYNOPSIS
|
|
</b><br>
|
|
<P>
|
|
<b>#include <pcre2.h></b>
|
|
</P>
|
|
<P>
|
|
<b>int pcre2_substitute(const pcre2_code *<i>code</i>, PCRE2_SPTR <i>subject</i>,</b>
|
|
<b> PCRE2_SIZE <i>length</i>, PCRE2_SIZE <i>startoffset</i>,</b>
|
|
<b> uint32_t <i>options</i>, pcre2_match_data *<i>match_data</i>,</b>
|
|
<b> pcre2_match_context *<i>mcontext</i>, PCRE2_SPTR <i>replacement</i>,</b>
|
|
<b> PCRE2_SIZE <i>rlength</i>, PCRE2_UCHAR *<i>outputbuffer</i>,</b>
|
|
<b> PCRE2_SIZE *<i>outlengthptr</i>);</b>
|
|
</P>
|
|
<br><b>
|
|
DESCRIPTION
|
|
</b><br>
|
|
<P>
|
|
This function matches a compiled regular expression against a given subject
|
|
string, using a matching algorithm that is similar to Perl's. It then makes a
|
|
copy of the subject, substituting a replacement string for what was matched.
|
|
Its arguments are:
|
|
<pre>
|
|
<i>code</i> Points to the compiled pattern
|
|
<i>subject</i> Points to the subject string
|
|
<i>length</i> Length of the subject string
|
|
<i>startoffset</i> Offset in the subject at which to start matching
|
|
<i>options</i> Option bits
|
|
<i>match_data</i> Points to a match data block, or is NULL
|
|
<i>mcontext</i> Points to a match context, or is NULL
|
|
<i>replacement</i> Points to the replacement string
|
|
<i>rlength</i> Length of the replacement string
|
|
<i>outputbuffer</i> Points to the output buffer
|
|
<i>outlengthptr</i> Points to the length of the output buffer
|
|
</pre>
|
|
A match data block is needed only if you want to inspect the data from the
|
|
final match that is returned in that block or if PCRE2_SUBSTITUTE_MATCHED is
|
|
set. A match context is needed only if you want to:
|
|
<pre>
|
|
Set up a callout function
|
|
Set a matching offset limit
|
|
Change the backtracking match limit
|
|
Change the backtracking depth limit
|
|
Set custom memory management in the match context
|
|
</pre>
|
|
The <i>length</i>, <i>startoffset</i> and <i>rlength</i> values are code units,
|
|
not characters, as is the contents of the variable pointed at by
|
|
<i>outlengthptr</i>. This variable must contain the length of the output buffer
|
|
when the function is called. If the function is successful, the value is
|
|
changed to the length of the new string, excluding the trailing zero that is
|
|
automatically added.
|
|
</P>
|
|
<P>
|
|
The subject and replacement lengths can be given as PCRE2_ZERO_TERMINATED for
|
|
zero-terminated strings. The options are:
|
|
<pre>
|
|
PCRE2_ANCHORED Match only at the first position
|
|
PCRE2_ENDANCHORED Match only at end of subject
|
|
PCRE2_NOTBOL Subject is not the beginning of a line
|
|
PCRE2_NOTEOL Subject is not the end of a line
|
|
PCRE2_NOTEMPTY An empty string is not a valid match
|
|
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
|
|
PCRE2_NO_UTF_CHECK Do not check for UTF validity in the subject or replacement
|
|
(only relevant if PCRE2_UTF was set at compile time)
|
|
PCRE2_SUBSTITUTE_EXTENDED Do extended replacement processing
|
|
PCRE2_SUBSTITUTE_GLOBAL Replace all occurrences in the subject
|
|
PCRE2_SUBSTITUTE_LITERAL The replacement string is literal
|
|
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
|
|
</pre>
|
|
If PCRE2_SUBSTITUTE_LITERAL is set, PCRE2_SUBSTITUTE_EXTENDED,
|
|
PCRE2_SUBSTITUTE_UNKNOWN_UNSET, and PCRE2_SUBSTITUTE_UNSET_EMPTY are ignored.
|
|
</P>
|
|
<P>
|
|
If PCRE2_SUBSTITUTE_MATCHED is set, <i>match_data</i> must be non-NULL; its
|
|
contents must be the result of a call to <b>pcre2_match()</b> using the same
|
|
pattern and subject.
|
|
</P>
|
|
<P>
|
|
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.
|
|
</P>
|
|
<P>
|
|
There is a complete description of the PCRE2 native API in the
|
|
<a href="pcre2api.html"><b>pcre2api</b></a>
|
|
page and a description of the POSIX API in the
|
|
<a href="pcre2posix.html"><b>pcre2posix</b></a>
|
|
page.
|
|
<p>
|
|
Return to the <a href="index.html">PCRE2 index page</a>.
|
|
</p>
|