<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<phpdoc:classref xml:id="class.regexiterator" xmlns:phpdoc="http://php.net/ns/phpdoc" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude">
 <title>The RegexIterator class</title>
 <titleabbrev>RegexIterator</titleabbrev>

 <partintro>

<!-- {{{  intro -->
  <section xml:id="regexiterator.intro">
   &reftitle.intro;
   <para>
    This iterator can be used to filter another iterator based on a regular expression.
   </para>
  </section>
<!-- }}} -->

  <section xml:id="regexiterator.synopsis">
   &reftitle.classsynopsis;

<!-- {{{ Synopsis -->
   <classsynopsis class="class">
    <ooclass>
     <classname>RegexIterator</classname>
    </ooclass>

    <ooclass>
     <modifier>extends</modifier>
     <classname>FilterIterator</classname>
    </ooclass>

    <classsynopsisinfo role="comment">&Constants;</classsynopsisinfo>
    <fieldsynopsis>
     <modifier>public</modifier>
     <modifier>const</modifier>
     <type>int</type>
     <varname linkend="regexiterator.constants.use-key">RegexIterator::USE_KEY</varname>
    </fieldsynopsis>
    <fieldsynopsis>
     <modifier>public</modifier>
     <modifier>const</modifier>
     <type>int</type>
     <varname linkend="regexiterator.constants.invert-match">RegexIterator::INVERT_MATCH</varname>
    </fieldsynopsis>
    <fieldsynopsis>
     <modifier>public</modifier>
     <modifier>const</modifier>
     <type>int</type>
     <varname linkend="regexiterator.constants.match">RegexIterator::MATCH</varname>
    </fieldsynopsis>
    <fieldsynopsis>
     <modifier>public</modifier>
     <modifier>const</modifier>
     <type>int</type>
     <varname linkend="regexiterator.constants.get-match">RegexIterator::GET_MATCH</varname>
    </fieldsynopsis>
    <fieldsynopsis>
     <modifier>public</modifier>
     <modifier>const</modifier>
     <type>int</type>
     <varname linkend="regexiterator.constants.all-matches">RegexIterator::ALL_MATCHES</varname>
    </fieldsynopsis>
    <fieldsynopsis>
     <modifier>public</modifier>
     <modifier>const</modifier>
     <type>int</type>
     <varname linkend="regexiterator.constants.split">RegexIterator::SPLIT</varname>
    </fieldsynopsis>
    <fieldsynopsis>
     <modifier>public</modifier>
     <modifier>const</modifier>
     <type>int</type>
     <varname linkend="regexiterator.constants.replace">RegexIterator::REPLACE</varname>
    </fieldsynopsis>

    <classsynopsisinfo role="comment">&Properties;</classsynopsisinfo>
    <fieldsynopsis>
     <modifier>public</modifier>
     <type class="union"><type>string</type><type>null</type></type>
     <varname linkend="regexiterator.props.replacement">replacement</varname>
     <initializer>null</initializer>
    </fieldsynopsis>

    <classsynopsisinfo role="comment">&Methods;</classsynopsisinfo>
    <xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.regexiterator')/db:refentry/db:refsect1[@role='description']/descendant::db:constructorsynopsis[@role='RegexIterator'])">
     <xi:fallback/>
    </xi:include>
    <xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.regexiterator')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[@role='RegexIterator'])">
     <xi:fallback/>
    </xi:include>

    <classsynopsisinfo role="comment">&InheritedMethods;</classsynopsisinfo>
    <xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.filteriterator')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[@role='FilterIterator'])">
     <xi:fallback/>
    </xi:include>
    <xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.iteratoriterator')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[@role='IteratorIterator'])">
     <xi:fallback/>
    </xi:include>
   </classsynopsis>

  </section>

  <section xml:id="regexiterator.constants">
   &reftitle.constants;
   <section xml:id="regexiterator.constants.operation-modes">
    <title>RegexIterator operation modes</title>
    <variablelist>

     <varlistentry xml:id="regexiterator.constants.all-matches">
      <term><constant>RegexIterator::ALL_MATCHES</constant></term>
      <listitem>
       <para>
        Return all matches for the current entry 
        (see <function>preg_match_all</function>).
       </para>
      </listitem>
     </varlistentry>

     <varlistentry xml:id="regexiterator.constants.get-match">
      <term><constant>RegexIterator::GET_MATCH</constant></term>
      <listitem>
       <para>
        Return the first match for the current entry 
        (see <function>preg_match</function>).
       </para>
      </listitem>
     </varlistentry>

     <varlistentry xml:id="regexiterator.constants.match">
      <term><constant>RegexIterator::MATCH</constant></term>
      <listitem>
       <para>
        Only execute match (filter) for the current entry 
        (see <function>preg_match</function>).
       </para>
      </listitem>
     </varlistentry>

     <varlistentry xml:id="regexiterator.constants.replace">
      <term><constant>RegexIterator::REPLACE</constant></term>
      <listitem>
       <para>
        Replace the current entry 
        (see <function>preg_replace</function>; Not fully implemented yet)
       </para>
      </listitem>
     </varlistentry>

     <varlistentry xml:id="regexiterator.constants.split">
      <term><constant>RegexIterator::SPLIT</constant></term>
      <listitem>
       <para>
        Returns the split values for the current entry (see <function>preg_split</function>).
       </para>
      </listitem>
     </varlistentry>
    </variablelist>
   </section>
   <section xml:id="regexiterator.constants.flags">
    <title>RegexIterator Flags</title>
    <variablelist>
     <varlistentry xml:id="regexiterator.constants.use-key">
      <term><constant>RegexIterator::USE_KEY</constant></term>
      <listitem>
       <para>
        Special flag: Match the entry key instead of the entry value.
       </para>
      </listitem>
     </varlistentry>

     <varlistentry xml:id="regexiterator.constants.invert-match">
      <term><constant>RegexIterator::INVERT_MATCH</constant></term>
      <listitem>
       <para>
        Inverts the return value of <methodname>RegexIterator::accept</methodname>.
       </para>
      </listitem>
     </varlistentry>

    </variablelist>
   </section>
  </section>

  <section xml:id="regexiterator.props">
   &reftitle.properties;
   <variablelist>
    <varlistentry xml:id="regexiterator.props.replacement">
     <term>
      <varname>replacement</varname>
     </term>
     <listitem>
      <para/>
     </listitem>
    </varlistentry>
   </variablelist>
  </section>

<!-- {{{  properties
  <section xml:id="regexiterator.props">
   &reftitle.properties;
   <variablelist>
    <varlistentry xml:id="regexiterator.props.name">
     <term><varname>name</varname></term>
     <listitem>
      <para>Prop description</para>
     </listitem>
    </varlistentry>
   </variablelist>
  </section>
}}} -->

 </partintro>

 &reference.spl.entities.regexiterator;

</phpdoc:classref>
<!-- 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:"~/.phpdoc/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
-->
