PCRE2_MATCH(3)
π PCRE2_MATCH(3) π
Hey bestie! This page comes from the Library Functions Manual, and itβs literally all about pcre2_match β the PCRE2 function that eats regexes and tells you what matched. No cap, weβre keeping every detail. π«Ά
πΈ NAME πΈ
PCRE2 - Perl-compatible regular expressions (revised API). π
β¨ SYNOPSIS β¨
#include <pcre2.h>
int pcre2_match(const pcre2_code *code, PCRE2_SPTR subject,
PCRE2_SIZE length, PCRE2_SIZE startoffset,
uint32_t options, pcre2_match_data *match_data,
pcre2_match_context *mcontext);
π¦ DESCRIPTION π¦
Okay so pcre2_match() matches a compiled regular expression against a given subject string, using a matching algorithm that is similar to Perlβs. It returns offsets to what it has matched and to captured substrings via the match_data block, which can be processed by functions with names that start with pcre2_get_ovector_...() or pcre2_substring_...(). The return from pcre2_match() is one more than the highest numbered capturing pair that has been set (for example, 1 if there are no captures), zero if the vector of offsets is too small, or a negative error code for no match and other errors. The function arguments are:
codeβ Points to the compiled pattern.subjectβ Points to the subject string.lengthβ Length of the subject string.startoffsetβ Offset in the subject at which to start matching.optionsβ Option bits.match_dataβ Points to a match data block, for results.mcontextβ Points to a match context, or isNULL.
A match context is needed only if you want to:
- Set up a callout function.
- Set a matching offset limit.
- Change the heap memory limit.
- Change the backtracking match limit.
- Change the backtracking depth limit.
- Set custom memory management specifically for the match.
The length and startoffset values are code units, not characters. The length may be given as PCRE2_ZERO_TERMINATED for a subject that is terminated by a binary zero code unit. The options are:
PCRE2_ANCHOREDβ Match only at the first position.PCRE2_COPY_MATCHED_SUBJECTβ On success, make a private subject copy.PCRE2_DISABLE_RECURSELOOP_CHECKβ Only useful in rare cases; use with care.PCRE2_ENDANCHOREDβ Pattern can match only at end of subject.PCRE2_NOTBOLβ Subject string is not the beginning of a line.PCRE2_NOTEOLβ Subject string 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 for UTF validity (only relevant ifPCRE2_UTFwas set at compile time).PCRE2_PARTIAL_HARDβ ReturnPCRE2_ERROR_PARTIALfor a partial match even if there is a full match.PCRE2_PARTIAL_SOFTβ ReturnPCRE2_ERROR_PARTIALfor a partial match if no full matches are found.
For details of partial matching, see the pcre2partial page. There is a complete description of the PCRE2 native API in the pcre2api page and a description of the POSIX API in the pcre2posix page. π
Thatβs the whole vibe check, bestie! π Catch you in the next page. β PCRE2 10.47, 27 January 2024, PCRE2_MATCH(3) π¦β¨
π¦ where this page comes from
- fedora 43: pcre2-devel 10.47-1.fc43 Β· BSD-3-Clause AND FSFULLR AND X11 AND GPL-2.0-or-later AND FSFAP AND FSFUL AND GPL-3.0-or-later
- fedora 43: pcre2-devel 10.47-1.fc43 Β· BSD-3-Clause AND FSFULLR AND X11 AND GPL-2.0-or-later AND FSFAP AND FSFUL AND GPL-3.0-or-later
- fedora 44: pcre2-devel 10.47-1.fc44.1 Β· BSD-3-Clause AND FSFULLR AND X11 AND GPL-2.0-or-later AND FSFAP AND FSFUL AND GPL-3.0-or-later
- fedora 44: pcre2-devel 10.47-1.fc44.1 Β· BSD-3-Clause AND FSFULLR AND X11 AND GPL-2.0-or-later AND FSFAP AND FSFUL AND GPL-3.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms