PCRE — Perl-compatible regular expressions
#include <pcre.h> int pcre_jit_exec(const pcre *code, const pcre_extra *extra, const char *subject, intlength, intstartoffset, intoptions, int *ovector, intovecsize, pcre_jit_stack *jstack); int pcre16_jit_exec(const pcre16 *code, const pcre16_extra *extra, PCRE_SPTR16subject, intlength, intstartoffset, intoptions, int *ovector, intovecsize, pcre_jit_stack *jstack); int pcre32_jit_exec(const pcre32 *code, const pcre32_extra *extra, PCRE_SPTR32subject, intlength, intstartoffset, intoptions, int *ovector, intovecsize, pcre_jit_stack *jstack);
This function matches a compiled regular expression that
has been successfully studied with one of the JIT options
against a given subject string, using a matching algorithm
that is similar to Perl's. It is a "fast path" interface to
JIT, and it bypasses some of the sanity checks that
pcre_exec() applies. It returns
offsets to captured substrings. Its arguments are:
codePoints to the compiled patternextraPoints to an associatedpcre[16|32]_extrastructure, or is NULLsubjectPoints to the subject stringlengthLength of the subject string, in bytesstartoffsetOffset in bytes in the subject at which to start matchingoptionsOption bitsovectorPoints to a vector of ints for result offsetsovecsizeNumber of elements in the vector (a multiple of 3)jstackPointer to a JIT stack
The allowed options are:
PCRE_NOTBOL Subject string is not the beginning of a line
PCRE_NOTEOL Subject string is not the end of a line
PCRE_NOTEMPTY An empty string is not a valid match
PCRE_NOTEMPTY_ATSTART An empty string at the start of the subject
is not a valid match
PCRE_NO_UTF16_CHECK Do not check the subject for UTF-16
validity (only relevant if PCRE_UTF16
was set at compile time)
PCRE_NO_UTF32_CHECK Do not check the subject for UTF-32
validity (only relevant if PCRE_UTF32
was set at compile time)
PCRE_NO_UTF8_CHECK Do not check the subject for UTF-8
validity (only relevant if PCRE_UTF8
was set at compile time)
PCRE_PARTIAL ) Return PCRE_ERROR_PARTIAL for a partial
PCRE_PARTIAL_SOFT ) match if no full matches are found
PCRE_PARTIAL_HARD Return PCRE_ERROR_PARTIAL for a partial match
if that is found before a full match
However, the PCRE_NO_UTF[8|16|32]_CHECK options have no
effect, as this check is never applied. For details of
partial matching, see the pcrepartial(3) page. A
pcre_extra structure contains
the following fields:
flagsBits indicating which fields are setstudy_dataOpaque data frompcre[16|32]_study()match_limitLimit on internal resource usematch_limit_recursionLimit on internal recursion depthcallout_dataOpaque data passed back to calloutstablesPoints to character tables or is NULLmarkFor passing back a *MARK pointerexecutable_jitOpaque data from JIT compilation
The flag bits are PCRE_EXTRA_STUDY_DATA, PCRE_EXTRA_MATCH_LIMIT, PCRE_EXTRA_MATCH_LIMIT_RECURSION, PCRE_EXTRA_CALLOUT_DATA, PCRE_EXTRA_TABLES, PCRE_EXTRA_MARK and PCRE_EXTRA_EXECUTABLE_JIT.
There is a complete description of the PCRE native API in the pcreapi(3) page and a description of the JIT API in the pcrejit(3) page.
| COPYRIGHT |
|---|
|
This manual page is taken from the PCRE library, which is distributed under the BSD license. |