Sophie

Sophie

distrib > Mandriva > 2008.1 > x86_64 > by-pkgid > 05cd670d8a02b2b4a0ffb1756f2e8308 > files > 10928

php-manual-zh-5.2.4-1mdv2008.1.noarch.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>Perl 兼容正则表达式函数</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REL="HOME"
TITLE="PHP 手册"
HREF="index.html"><LINK
REL="UP"
TITLE="函数参考"
HREF="funcref.html"><LINK
REL="PREVIOUS"
TITLE="pcntl_wtermsig"
HREF="function.pcntl-wtermsig.html"><LINK
REL="NEXT"
TITLE="模式修正符"
HREF="reference.pcre.pattern.modifiers.html"><META
HTTP-EQUIV="Content-type"
CONTENT="text/html; charset=UTF-8"></HEAD
><BODY
CLASS="reference"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>PHP 手册</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="function.pcntl-wtermsig.html"
ACCESSKEY="P"
>上一页</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="reference.pcre.pattern.modifiers.html"
ACCESSKEY="N"
>下一页</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="reference"
><A
NAME="ref.pcre"
></A
><DIV
CLASS="TITLEPAGE"
><H1
CLASS="title"
>CXX. Perl 兼容正则表达式函数</H1
><DIV
CLASS="PARTINTRO"
><A
NAME="AEN170565"
></A
><DIV
CLASS="section"
><H1
CLASS="section"
><A
NAME="pcre.intro"
>简介</A
></H1
><P
>&#13;    本类函数中所使用的模式极其类似
    Perl。表达式应被包含在定界符中,如斜线(/)。任何不是字母、数字或反斜线(\)的字符都可以作为定界符。如果作为定界符的字符必须被用在表达式本身中,则需要用反斜线转义。自
    PHP 4.0.4 起,也可以使用 Perl
    风格的 (),{},[] 和 &#60;&#62; 匹配定界符。详细解释见<A
HREF="reference.pcre.pattern.syntax.html"
>模式语法</A
>。
   </P
><P
>&#13;    结束定界符的后面可以跟上不同的修正符以影响匹配方式。见<A
HREF="reference.pcre.pattern.modifiers.html"
>模式修正符</A
>。
   </P
><P
>&#13;    PHP 也支持 POSIX 扩展语法的正则表达式,见
    <A
HREF="ref.regex.html"
>POSIX 扩展正则表达式函数</A
>。
   </P
><DIV
CLASS="note"
><BLOCKQUOTE
CLASS="note"
><P
><B
>注意: </B
>
     本扩展库保持有一个已编译的正则表达式的全局线程化缓存(最大 4096)。
    </P
></BLOCKQUOTE
></DIV
><DIV
CLASS="warning"
><P
></P
><TABLE
CLASS="warning"
BORDER="1"
WIDTH="100%"
><TR
><TD
ALIGN="CENTER"
><B
>警告</B
></TD
></TR
><TR
><TD
ALIGN="LEFT"
><P
>&#13;     要留意到 PCRE 的一些局限。更多信息见 <A
HREF="http://www.pcre.org/pcre.txt"
TARGET="_top"
>http://www.pcre.org/pcre.txt</A
>。
    </P
></TD
></TR
></TABLE
></DIV
></DIV
><DIV
CLASS="section"
><H1
CLASS="section"
><A
NAME="pcre.requirements"
>需求</A
></H1
><P
>要编译本扩展模块无需外部库文件。</P
></DIV
><DIV
CLASS="section"
><H1
CLASS="section"
><A
NAME="pcre.installation"
>安装</A
></H1
><P
>&#13;  自 PHP 4.2.0 起这些函数默认被激活。可以通过
  <CODE
CLASS="option"
>--without-pcre-regex</CODE
>
  禁用 PCRE 函数。如果不使用绑定的库的话,用
  <CODE
CLASS="option"
>--with-pcre-regex=DIR</CODE
>
  来指定 PCRE 库文件和头文件的路径。对早期版本必须在编译时用
  <CODE
CLASS="option"
>--with-pcre-regex[=DIR]</CODE
>
  才能使用这些函数。
 </P
><P
> <TT
CLASS="literal"
>PHP</TT
> 的 Windows
版本已经内置该扩展模块的支持。无需加载任何附加扩展库即可使用这些函数。</P
></DIV
><DIV
CLASS="section"
><H1
CLASS="section"
><A
NAME="pcre.configuration"
>运行时配置</A
></H1
><P
>本扩展模块在 <TT
CLASS="filename"
>php.ini</TT
> 中未定义任何配置选项。</P
></DIV
><DIV
CLASS="section"
><H1
CLASS="section"
><A
NAME="pcre.resources"
>资源类型</A
></H1
><P
>本扩展模块未定义任何资源类型。</P
></DIV
><DIV
CLASS="section"
><H1
CLASS="section"
><A
NAME="pcre.constants"
>预定义常量</A
></H1
><P
>以下常量由本扩展模块定义,因此只有在本扩展模块被编译到
PHP 中,或者在运行时被动态加载后才有效。</P
><DIV
CLASS="table"
><A
NAME="AEN170600"
></A
><P
><B
>表 1. PREG 常量</B
></P
><TABLE
BORDER="1"
CLASS="CALSTABLE"
><COL><COL><THEAD
><TR
><TH
>常量</TH
><TH
>说明</TH
></TR
></THEAD
><TBODY
><TR
><TD
>PREG_PATTERN_ORDER</TD
><TD
>&#13;      对结果排序使得 $matches[0] 为整个模式的匹配结果的数组,$matches[1]
      为第一个括号内的子模式所匹配的字符串的数组,等等。本标记仅用于
      <A
HREF="function.preg-match-all.html"
><B
CLASS="function"
>preg_match_all()</B
></A
>。
     </TD
></TR
><TR
><TD
>PREG_SET_ORDER</TD
><TD
>&#13;      对结果排序使得 $matches[0] 为第一组匹配结果的数组,$matches[1]
      为第二组匹配结果的数组,等等。本标记仅用于
      <A
HREF="function.preg-match-all.html"
><B
CLASS="function"
>preg_match_all()</B
></A
>。
     </TD
></TR
><TR
><TD
>PREG_OFFSET_CAPTURE</TD
><TD
>&#13;      见 <TT
CLASS="constant"
><B
>PREG_SPLIT_OFFSET_CAPTURE</B
></TT
>
      的说明。本标记自 PHP 4.3.0 起可用。
     </TD
></TR
><TR
><TD
>PREG_SPLIT_NO_EMPTY</TD
><TD
>&#13;      本标记使 <A
HREF="function.preg-split.html"
><B
CLASS="function"
>preg_split()</B
></A
> 仅返回非空的结果。
     </TD
></TR
><TR
><TD
>PREG_SPLIT_DELIM_CAPTURE</TD
><TD
>&#13;      本标记使 <A
HREF="function.preg-split.html"
><B
CLASS="function"
>preg_split()</B
></A
> 也捕获定界符模式中的括号表达。本标记自
      PHP 4.0.5 起可用。
     </TD
></TR
><TR
><TD
>PREG_SPLIT_OFFSET_CAPTURE</TD
><TD
>&#13;      如果设定本标记,对每个出现的匹配结果也同时返回其附属的字符串偏移量。注意这改变了返回的数组的值,使其中的每个单元也是一个数组,其中第一项为匹配字符串,第二项为其偏移量。本标记自
      PHP 4.3.0 起可用且仅用于 <A
HREF="function.preg-split.html"
><B
CLASS="function"
>preg_split()</B
></A
>。
     </TD
></TR
></TBODY
></TABLE
></DIV
></DIV
><DIV
CLASS="section"
><H1
CLASS="section"
><A
NAME="pcre.examples"
>范例</A
></H1
><P
>&#13;    <TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
CLASS="EXAMPLE"
><TR
><TD
><DIV
CLASS="example"
><A
NAME="AEN170635"
></A
><P
><B
>例 1. 合法的模式举例</B
></P
><P
></P
><UL
><LI
><P
><TT
CLASS="literal"
>/&#60;\/\w+&#62;/</TT
></P
></LI
><LI
><P
><TT
CLASS="literal"
>|(\d{3})-\d+|Sm</TT
></P
></LI
><LI
><P
><TT
CLASS="literal"
>/^(?i)php[34]/</TT
></P
></LI
><LI
><P
><TT
CLASS="literal"
>{^\s+(\s+)?$}</TT
></P
></LI
></UL
></DIV
></TD
></TR
></TABLE
>
   </P
><P
>&#13;    <TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
CLASS="EXAMPLE"
><TR
><TD
><DIV
CLASS="example"
><A
NAME="AEN170651"
></A
><P
><B
>例 2. 非法的模式举例</B
></P
><P
></P
><UL
><LI
><P
>&#13;        <TT
CLASS="literal"
>/href='(.*)'</TT
> - 缺少结束定界符
       </P
></LI
><LI
><P
>&#13;        <TT
CLASS="literal"
>/\w+\s*\w+/J</TT
> - 未知的修正符 'J'
       </P
></LI
><LI
><P
>&#13;        <TT
CLASS="literal"
>1-\d3-\d3-\d4|</TT
> - 缺少起始定界符
       </P
></LI
></UL
></DIV
></TD
></TR
></TABLE
>
   </P
></DIV
></DIV
><DIV
CLASS="TOC"
><DL
><DT
><B
>目录</B
></DT
><DT
><A
HREF="reference.pcre.pattern.modifiers.html"
>模式修正符</A
>&nbsp;--&nbsp;解说正则表达式模式中使用的修正符</DT
><DT
><A
HREF="reference.pcre.pattern.syntax.html"
>模式语法</A
>&nbsp;--&nbsp;解说 Perl 兼容正则表达式的语法</DT
><DT
><A
HREF="function.preg-grep.html"
>preg_grep</A
>&nbsp;--&nbsp;
   返回与模式匹配的数组单元
  </DT
><DT
><A
HREF="function.preg-last-error.html"
>preg_last_error</A
>&nbsp;--&nbsp;Returns the error code of the last PCRE regex execution</DT
><DT
><A
HREF="function.preg-match-all.html"
>preg_match_all</A
>&nbsp;--&nbsp;进行全局正则表达式匹配</DT
><DT
><A
HREF="function.preg-match.html"
>preg_match</A
>&nbsp;--&nbsp;进行正则表达式匹配</DT
><DT
><A
HREF="function.preg-quote.html"
>preg_quote</A
>&nbsp;--&nbsp;转义正则表达式字符</DT
><DT
><A
HREF="function.preg-replace-callback.html"
>preg_replace_callback</A
>&nbsp;--&nbsp;用回调函数执行正则表达式的搜索和替换</DT
><DT
><A
HREF="function.preg-replace.html"
>preg_replace</A
>&nbsp;--&nbsp;执行正则表达式的搜索和替换</DT
><DT
><A
HREF="function.preg-split.html"
>preg_split</A
>&nbsp;--&nbsp;用正则表达式分割字符串</DT
></DL
></DIV
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="function.pcntl-wtermsig.html"
ACCESSKEY="P"
>上一页</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>起始页</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="reference.pcre.pattern.modifiers.html"
ACCESSKEY="N"
>下一页</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>pcntl_wtermsig</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="funcref.html"
ACCESSKEY="U"
>上一级</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>模式修正符</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>