# The RegexIterator class

&reftitle.intro;

This iterator can be used to filter another iterator based on a regular expression.

&reftitle.classsynopsis;

         RegexIterator

         extends
         FilterIterator

        &Constants;

         public
         const
         int
         RegexIterator::USE_KEY

         public
         const
         int
         RegexIterator::INVERT_MATCH

         public
         const
         int
         RegexIterator::MATCH

         public
         const
         int
         RegexIterator::GET_MATCH

         public
         const
         int
         RegexIterator::ALL_MATCHES

         public
         const
         int
         RegexIterator::SPLIT

         public
         const
         int
         RegexIterator::REPLACE

        &Properties;

         public
         stringnull
         replacement
         null

        &Methods;

        &InheritedMethods;

&reftitle.constants;

### RegexIterator operation modes

`RegexIterator::ALL_MATCHES`

- Return all matches for the current entry (see `preg_match_all`).

`RegexIterator::GET_MATCH`

- Return the first match for the current entry (see `preg_match`).

`RegexIterator::MATCH`

- Only execute match (filter) for the current entry (see `preg_match`).

`RegexIterator::REPLACE`

- Replace the current entry (see `preg_replace`; Not fully implemented yet)

`RegexIterator::SPLIT`

- Returns the split values for the current entry (see `preg_split`).

### RegexIterator Flags

`RegexIterator::USE_KEY`

- Special flag: Match the entry key instead of the entry value.

`RegexIterator::INVERT_MATCH`

- Inverts the return value of `RegexIterator::accept`.

&reftitle.properties;

`replacement`

&reference.spl.entities.regexiterator;