<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.11 $ -->
 <reference id="ref.regex">
  <title>Regular Expression Functions (POSIX Extended)</title>
  <titleabbrev>POSIX Regex</titleabbrev>

  <partintro>
   <section id="regex.intro">
    &reftitle.intro;
    <tip>
     <para>
      PHP also supports regular expressions using a Perl-compatible syntax
      using the <link linkend="ref.pcre">PCRE functions</link>. Those functions
      support non-greedy matching, assertions, conditional subpatterns, and a
      number of other features not supported by the POSIX-extended regular
      expression syntax.
     </para>
    </tip>
    <warning>
     <para>
      These regular expression functions are not binary-safe. The <link
      linkend="ref.pcre">PCRE functions</link> are.
     </para>
    </warning>
    <para>
     Regular expressions are used for complex string manipulation.
     PHP uses the POSIX extended regular expressions as defined by POSIX
     1003.2. For a full description of POSIX regular expressions see the <ulink url="&url.regex.man;">regex
     man pages</ulink> included in the regex directory in the PHP distribution. It's
     in manpage format, so you'll want to do something along the lines of
     <command>man /usr/local/src/regex/regex.7</command> in order to read it.
    </para>
   </section>
   
   <section id="regex.requirements">
    &reftitle.required;
    &no.requirement;
   </section>
   
   &reference.regex.configure;

   <section id="regex.configuration">
    &reftitle.runtime;
    &no.config;
   </section>

   <section id="regex.resources">
    &reftitle.resources;
    &no.resource;
   </section>

   <section id="regex.constants">
    &reftitle.constants;
    &no.constants;
   </section>

   <section id="regex.examples">
    &reftitle.examples;
    <para>
     <example>
     <title>Regular Expression Examples</title>
      <programlisting role="php">
<![CDATA[
<?php
// Returns true if "abc" is found anywhere in $string.
ereg("abc", $string);            

// Returns true if "abc" is found at the beginning of $string.
ereg("^abc", $string);

// Returns true if "abc" is found at the end of $string.
ereg("abc$", $string);

// Returns true if client browser is Netscape 2, 3 or MSIE 3.
eregi("(ozilla.[23]|MSIE.3)", $HTTP_USER_AGENT);  

// Places three space separated words into $regs[1], $regs[2] and $regs[3].
ereg("([[:alnum:]]+) ([[:alnum:]]+) ([[:alnum:]]+)", $string, $regs); 

// Put a <br /> tag at the beginning of $string.
$string = ereg_replace("^", "<br />", $string); 
 
// Put a <br /> tag at the end of $string.
$string = ereg_replace("$", "<br />", $string); 

// Get rid of any newline characters in $string.
$string = ereg_replace("\n", "", $string);
?>
]]>
      </programlisting>
     </example>
    </para>
   </section>

   <section id="regex.seealso">
    &reftitle.seealso;
    <para>
     For regular expressions in Perl-compatible syntax have a look at the
     <link linkend="ref.pcre">PCRE functions</link>. The simpler shell style
     wildcard pattern matching is provided by <function>fnmatch</function>.
    </para>
   </section>
  </partintro>

  &reference.regex.functions;

 </reference>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"../../../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->