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>
 |