⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pcre.txt

📁 PHP v6.0 For Linux 运行环境:Win9X/ WinME/ WinNT/ Win2K/ WinXP
💻 TXT
📖 第 1 页 / 共 5 页
字号:
COMPILING A PATTERN       pcre *pcre_compile(const char *pattern, int options,            const char **errptr, int *erroffset,            const unsigned char *tableptr);       pcre *pcre_compile2(const char *pattern, int options,            int *errorcodeptr,            const char **errptr, int *erroffset,            const unsigned char *tableptr);       Either of the functions pcre_compile() or pcre_compile2() can be called       to compile a pattern into an internal form. The only difference between       the two interfaces is that pcre_compile2() has an additional  argument,       errorcodeptr, via which a numerical error code can be returned.       The pattern is a C string terminated by a binary zero, and is passed in       the pattern argument. A pointer to a single block  of  memory  that  is       obtained  via  pcre_malloc is returned. This contains the compiled code       and related data. The pcre type is defined for the returned block; this       is a typedef for a structure whose contents are not externally defined.       It is up to the caller  to  free  the  memory  when  it  is  no  longer       required.       Although  the compiled code of a PCRE regex is relocatable, that is, it       does not depend on memory location, the complete pcre data block is not       fully  relocatable, because it may contain a copy of the tableptr argu-       ment, which is an address (see below).       The options argument contains independent bits that affect the compila-       tion.  It  should  be  zero  if  no options are required. The available       options are described below. Some of them, in  particular,  those  that       are  compatible  with  Perl,  can also be set and unset from within the       pattern (see the detailed description  in  the  pcrepattern  documenta-       tion).  For  these options, the contents of the options argument speci-       fies their initial settings at the start of compilation and  execution.       The  PCRE_ANCHORED option can be set at the time of matching as well as       at compile time.       If errptr is NULL, pcre_compile() returns NULL immediately.  Otherwise,       if  compilation  of  a  pattern fails, pcre_compile() returns NULL, and       sets the variable pointed to by errptr to point to a textual error mes-       sage. This is a static string that is part of the library. You must not       try to free it. The offset from the start of the pattern to the charac-       ter where the error was discovered is placed in the variable pointed to       by erroffset, which must not be NULL. If it is, an immediate  error  is       given.       If  pcre_compile2()  is  used instead of pcre_compile(), and the error-       codeptr argument is not NULL, a non-zero error code number is  returned       via  this argument in the event of an error. This is in addition to the       textual error message. Error codes and messages are listed below.       If the final argument, tableptr, is NULL, PCRE uses a  default  set  of       character  tables  that  are  built  when  PCRE  is compiled, using the       default C locale. Otherwise, tableptr must be an address  that  is  the       result  of  a  call to pcre_maketables(). This value is stored with the       compiled pattern, and used again by pcre_exec(), unless  another  table       pointer is passed to it. For more discussion, see the section on locale       support below.       This code fragment shows a typical straightforward  call  to  pcre_com-       pile():         pcre *re;         const char *error;         int erroffset;         re = pcre_compile(           "^A.*Z",          /* the pattern */           0,                /* default options */           &error,           /* for error message */           &erroffset,       /* for error offset */           NULL);            /* use default character tables */       The  following  names  for option bits are defined in the pcre.h header       file:         PCRE_ANCHORED       If this bit is set, the pattern is forced to be "anchored", that is, it       is  constrained to match only at the first matching point in the string       that is being searched (the "subject string"). This effect can also  be       achieved  by appropriate constructs in the pattern itself, which is the       only way to do it in Perl.         PCRE_AUTO_CALLOUT       If this bit is set, pcre_compile() automatically inserts callout items,       all  with  number  255, before each pattern item. For discussion of the       callout facility, see the pcrecallout documentation.         PCRE_CASELESS       If this bit is set, letters in the pattern match both upper  and  lower       case  letters.  It  is  equivalent  to  Perl's /i option, and it can be       changed within a pattern by a (?i) option setting. In UTF-8 mode,  PCRE       always  understands the concept of case for characters whose values are       less than 128, so caseless matching is always possible. For  characters       with  higher  values,  the concept of case is supported if PCRE is com-       piled with Unicode property support, but not otherwise. If you want  to       use  caseless  matching  for  characters 128 and above, you must ensure       that PCRE is compiled with Unicode property support  as  well  as  with       UTF-8 support.         PCRE_DOLLAR_ENDONLY       If  this bit is set, a dollar metacharacter in the pattern matches only       at the end of the subject string. Without this option,  a  dollar  also       matches  immediately before the final character if it is a newline (but       not before any  other  newlines).  The  PCRE_DOLLAR_ENDONLY  option  is       ignored if PCRE_MULTILINE is set. There is no equivalent to this option       in Perl, and no way to set it within a pattern.         PCRE_DOTALL       If this bit is set, a dot metacharater in the pattern matches all char-       acters,  including  newlines.  Without  it, newlines are excluded. This       option is equivalent to Perl's /s option, and it can be changed  within       a  pattern  by  a  (?s)  option  setting. A negative class such as [^a]       always matches a newline character, independent of the setting of  this       option.         PCRE_EXTENDED       If  this  bit  is  set,  whitespace  data characters in the pattern are       totally ignored except when escaped or inside a character class. White-       space does not include the VT character (code 11). In addition, charac-       ters between an unescaped # outside a character class and the next new-       line  character,  inclusive,  are  also  ignored. This is equivalent to       Perl's /x option, and it can be changed within  a  pattern  by  a  (?x)       option setting.       This  option  makes  it possible to include comments inside complicated       patterns.  Note, however, that this applies only  to  data  characters.       Whitespace   characters  may  never  appear  within  special  character       sequences in a pattern, for  example  within  the  sequence  (?(  which       introduces a conditional subpattern.         PCRE_EXTRA       This  option  was invented in order to turn on additional functionality       of PCRE that is incompatible with Perl, but it  is  currently  of  very       little  use. When set, any backslash in a pattern that is followed by a       letter that has no special meaning  causes  an  error,  thus  reserving       these  combinations  for  future  expansion.  By default, as in Perl, a       backslash followed by a letter with no special meaning is treated as  a       literal.  There  are  at  present  no other features controlled by this       option. It can also be set by a (?X) option setting within a pattern.         PCRE_FIRSTLINE       If this option is set, an  unanchored  pattern  is  required  to  match       before  or at the first newline character in the subject string, though       the matched text may continue over the newline.         PCRE_MULTILINE       By default, PCRE treats the subject string as consisting  of  a  single       line  of characters (even if it actually contains newlines). The "start       of line" metacharacter (^) matches only at the  start  of  the  string,       while  the  "end  of line" metacharacter ($) matches only at the end of       the string, or before a terminating newline (unless PCRE_DOLLAR_ENDONLY       is set). This is the same as Perl.       When  PCRE_MULTILINE  it  is set, the "start of line" and "end of line"       constructs match immediately following or immediately before  any  new-       line  in the subject string, respectively, as well as at the very start       and end. This is equivalent to Perl's /m option, and it can be  changed       within a pattern by a (?m) option setting. If there are no "\n" charac-       ters in a subject string, or no occurrences of ^ or  $  in  a  pattern,       setting PCRE_MULTILINE has no effect.         PCRE_NO_AUTO_CAPTURE       If this option is set, it disables the use of numbered capturing paren-       theses in the pattern. Any opening parenthesis that is not followed  by       ?  behaves as if it were followed by ?: but named parentheses can still       be used for capturing (and they acquire  numbers  in  the  usual  way).       There is no equivalent of this option in Perl.         PCRE_UNGREEDY       This  option  inverts  the "greediness" of the quantifiers so that they       are not greedy by default, but become greedy if followed by "?". It  is       not  compatible  with Perl. It can also be set by a (?U) option setting       within the pattern.         PCRE_UTF8       This option causes PCRE to regard both the pattern and the  subject  as       strings  of  UTF-8 characters instead of single-byte character strings.       However, it is available only when PCRE is built to include UTF-8  sup-       port.  If not, the use of this option provokes an error. Details of how       this option changes the behaviour of PCRE are given in the  section  on       UTF-8 support in the main pcre page.         PCRE_NO_UTF8_CHECK       When PCRE_UTF8 is set, the validity of the pattern as a UTF-8 string is       automatically checked. If an invalid UTF-8 sequence of bytes is  found,       pcre_compile()  returns an error. If you already know that your pattern       is valid, and you want to skip this check for performance reasons,  you       can  set  the  PCRE_NO_UTF8_CHECK option. When it is set, the effect of       passing an invalid UTF-8 string as a pattern is undefined. It may cause       your  program  to  crash.   Note that this option can also be passed to       pcre_exec() and pcre_dfa_exec(), to suppress the UTF-8 validity  check-       ing of subject strings.COMPILATION ERROR CODES       The  following  table  lists  the  error  codes than may be returned by       pcre_compile2(), along with the error messages that may be returned  by       both compiling functions.          0  no error          1  \ at end of pattern          2  \c at end of pattern          3  unrecognized character follows \          4  numbers out of order in {} quantifier          5  number too big in {} quantifier          6  missing terminating ] for character class          7  invalid escape sequence in character class          8  range out of order in character class          9  nothing to repeat         10  operand of unlimited repeat could match the empty string         11  internal error: unexpected repeat         12  unrecognized character after (?         13  POSIX named classes are supported only within a class         14  missing )         15  reference to non-existent subpattern         16  erroffset passed as NULL         17  unknown option bit(s) set         18  missing ) after comment         19  parentheses nested too deeply         20  regular expression too large         21  failed to get memory         22  unmatched parentheses         23  internal error: code overflow         24  unrecognized character after (?<         25  lookbehind assertion is not fixed length         26  malformed number after (?(         27  conditional group contains more than two branches         28  assertion expected after (?(         29  (?R or (?digits must be followed by )         30  unknown POSIX class name         31  POSIX collating elements are not supported         32  this version of PCRE is not compiled with PCRE_UTF8 support         33  spare error         34  character value in \x{...} sequence is too large         35  invalid condition (?(0)         36  \C not allowed in lookbehind assertion         37  PCRE does not support \L, \l, \N, \U, or \u         38  number after (?C is > 255         39  closing ) for (?C expected         40  recursive call could loop indefinitely         41  unrecognized character after (?P         42  syntax error after (?P         43  two named groups have the same name         44  invalid UTF-8 string         45  support for \P, \p, and \X has not been compiled         46  malformed \P or \p sequence         47  unknown property name after \P or \pSTUDYING A PATTERN       pcre_extra *pcre_study(const pcre *code, int options            const char **errptr);       If  a  compiled  pattern is going to be used several times, it is worth       spending more time analyzing it in order to speed up the time taken for       matching.  The function pcre_study() takes a pointer to a compiled pat-       tern as its first argument. If studying the pattern produces additional       information  that  will  help speed up matching, pcre_study() returns a       pointer to a pcre_extra block, in which the study_data field points  to

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -