| <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 Pattern can 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 the subject or replacement for UTF validity (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 1st 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-zero; 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> |