man-pages/man3/pcre2_dfa_match.3.html
2021-03-31 01:06:50 +01:00

113 lines
6.2 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>Man page of PCRE2_DFA_MATCH</TITLE>
</HEAD><BODY>
<H1>PCRE2_DFA_MATCH</H1>
Section: C Library Functions (3)<BR>Updated: 16 October 2018<BR><A HREF="#index">Index</A>
<A HREF="/cgi-bin/man/man2html">Return to Main Contents</A><HR>
<A NAME="lbAB">&nbsp;</A>
<H2>NAME</H2>
PCRE2 - Perl-compatible regular expressions (revised API)
<A NAME="lbAC">&nbsp;</A>
<H2>SYNOPSIS</H2>
<P>
<B>#include &lt;<A HREF="file:///usr/include/pcre2.h">pcre2.h</A>&gt;</B>
<P>
<PRE>
<B>int pcre2_dfa_match(const pcre2_code *</B><I>code</I>, PCRE2_SPTR <I>subject</I>,
<B> PCRE2_SIZE </B><I>length</I>, PCRE2_SIZE <I>startoffset</I>,
<B> uint32_t </B><I>options</I>, pcre2_match_data *<I>match_data</I>,
<B> pcre2_match_context *</B><I>mcontext</I>,
<B> int *</B><I>workspace</I>, PCRE2_SIZE <I>wscount</I>);
</PRE>
<A NAME="lbAD">&nbsp;</A>
<H2>DESCRIPTION</H2>
<P>
This function matches a compiled regular expression against a given subject
string, using an alternative matching algorithm that scans the subject string
just once (except when processing lookaround assertions). This function is
<I>not</I> Perl-compatible (the Perl-compatible matching function is
<B>pcre2_match()</B>). The arguments for this function are:
<P>
<BR>&nbsp;&nbsp;<I>code</I>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Points&nbsp;to&nbsp;the&nbsp;compiled&nbsp;pattern
<BR>&nbsp;&nbsp;<I>subject</I>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Points&nbsp;to&nbsp;the&nbsp;subject&nbsp;string
<BR>&nbsp;&nbsp;<I>length</I>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Length&nbsp;of&nbsp;the&nbsp;subject&nbsp;string
<BR>&nbsp;&nbsp;<I>startoffset</I>&nbsp;&nbsp;Offset&nbsp;in&nbsp;the&nbsp;subject&nbsp;at&nbsp;which&nbsp;to&nbsp;start&nbsp;matching
<BR>&nbsp;&nbsp;<I>options</I>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Option&nbsp;bits
<BR>&nbsp;&nbsp;<I>match_data</I>&nbsp;&nbsp;&nbsp;Points&nbsp;to&nbsp;a&nbsp;match&nbsp;data&nbsp;block,&nbsp;for&nbsp;results
<BR>&nbsp;&nbsp;<I>mcontext</I>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Points&nbsp;to&nbsp;a&nbsp;match&nbsp;context,&nbsp;or&nbsp;is&nbsp;NULL
<BR>&nbsp;&nbsp;<I>workspace</I>&nbsp;&nbsp;&nbsp;&nbsp;Points&nbsp;to&nbsp;a&nbsp;vector&nbsp;of&nbsp;ints&nbsp;used&nbsp;as&nbsp;working&nbsp;space
<BR>&nbsp;&nbsp;<I>wscount</I>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Number&nbsp;of&nbsp;elements&nbsp;in&nbsp;the&nbsp;vector
<P>
For <B>pcre2_dfa_match()</B>, a match context is needed only if you want to set
up a callout function or specify the heap limit or the match or the recursion
depth limits. The <I>length</I> and <I>startoffset</I> values are code units, not
characters. The options are:
<P>
<BR>&nbsp;&nbsp;PCRE2_ANCHORED&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Match&nbsp;only&nbsp;at&nbsp;the&nbsp;first&nbsp;position
<BR>&nbsp;&nbsp;PCRE2_COPY_MATCHED_SUBJECT
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;On&nbsp;success,&nbsp;make&nbsp;a&nbsp;private&nbsp;subject&nbsp;copy
<BR>&nbsp;&nbsp;PCRE2_ENDANCHORED&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Pattern&nbsp;can&nbsp;match&nbsp;only&nbsp;at&nbsp;end&nbsp;of&nbsp;subject
<BR>&nbsp;&nbsp;PCRE2_NOTBOL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Subject&nbsp;is&nbsp;not&nbsp;the&nbsp;beginning&nbsp;of&nbsp;a&nbsp;line
<BR>&nbsp;&nbsp;PCRE2_NOTEOL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Subject&nbsp;is&nbsp;not&nbsp;the&nbsp;end&nbsp;of&nbsp;a&nbsp;line
<BR>&nbsp;&nbsp;PCRE2_NOTEMPTY&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;An&nbsp;empty&nbsp;string&nbsp;is&nbsp;not&nbsp;a&nbsp;valid&nbsp;match
<BR>&nbsp;&nbsp;PCRE2_NOTEMPTY_ATSTART&nbsp;&nbsp;An&nbsp;empty&nbsp;string&nbsp;at&nbsp;the&nbsp;start&nbsp;of&nbsp;the&nbsp;subject
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;is&nbsp;not&nbsp;a&nbsp;valid&nbsp;match
<BR>&nbsp;&nbsp;PCRE2_NO_UTF_CHECK&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Do&nbsp;not&nbsp;check&nbsp;the&nbsp;subject&nbsp;for&nbsp;UTF
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;validity&nbsp;(only&nbsp;relevant&nbsp;if&nbsp;PCRE2_UTF
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;was&nbsp;set&nbsp;at&nbsp;compile&nbsp;time)
<BR>&nbsp;&nbsp;PCRE2_PARTIAL_HARD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return&nbsp;PCRE2_ERROR_PARTIAL&nbsp;for&nbsp;a&nbsp;partial
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;match&nbsp;even&nbsp;if&nbsp;there&nbsp;is&nbsp;a&nbsp;full&nbsp;match
<BR>&nbsp;&nbsp;PCRE2_PARTIAL_SOFT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return&nbsp;PCRE2_ERROR_PARTIAL&nbsp;for&nbsp;a&nbsp;partial
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;match&nbsp;if&nbsp;no&nbsp;full&nbsp;matches&nbsp;are&nbsp;found
<BR>&nbsp;&nbsp;PCRE2_DFA_RESTART&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Restart&nbsp;after&nbsp;a&nbsp;partial&nbsp;match
<BR>&nbsp;&nbsp;PCRE2_DFA_SHORTEST&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return&nbsp;only&nbsp;the&nbsp;shortest&nbsp;match
<P>
There are restrictions on what may appear in a pattern when using this matching
function. Details are given in the
<B>pcre2matching</B>
documentation. For details of partial matching, see the
<B>pcre2partial</B>
page. There is a complete description of the PCRE2 native API in the
<B>pcre2api</B>
page and a description of the POSIX API in the
<B>pcre2posix</B>
page.
<P>
<HR>
<A NAME="index">&nbsp;</A><H2>Index</H2>
<DL>
<DT id="1"><A HREF="#lbAB">NAME</A><DD>
<DT id="2"><A HREF="#lbAC">SYNOPSIS</A><DD>
<DT id="3"><A HREF="#lbAD">DESCRIPTION</A><DD>
</DL>
<HR>
This document was created by
<A HREF="/cgi-bin/man/man2html">man2html</A>,
using the manual pages.<BR>
Time: 00:05:50 GMT, March 31, 2021
</BODY>
</HTML>