Класс RegexIterator

(PHP 5 >= 5.2.0, PHP 7)

Введение

Этот итератор может быть использован для фильтрации другого итератора на основе регулярных выражений.

Обзор классов

RegexIterator extends FilterIterator {
/* Константы */
const integer MATCH = 0 ;
const integer GET_MATCH = 1 ;
const integer ALL_MATCHES = 2 ;
const integer SPLIT = 3 ;
const integer REPLACE = 4 ;
const integer USE_KEY = 1 ;
/* Методы */
public __construct ( Iterator $iterator , string $regex [, int $mode = self::MATCH [, int $flags = 0 [, int $preg_flags = 0 ]]] )
public bool accept ( void )
public int getFlags ( void )
public int getMode ( void )
public int getPregFlags ( void )
public string getRegex ( void )
public void setFlags ( int $flags )
public void setMode ( int $mode )
public void setPregFlags ( int $preg_flags )
/* Наследуемые методы */
public abstract bool FilterIterator::accept ( void )
public mixed FilterIterator::current ( void )
public Iterator FilterIterator::getInnerIterator ( void )
public mixed FilterIterator::key ( void )
public void FilterIterator::next ( void )
public void FilterIterator::rewind ( void )
public bool FilterIterator::valid ( void )
}

Предопределенные константы

Режимы работы RegexIterator

RegexIterator::ALL_MATCHES

Возвращает все совпадения для текущий записи (смотрите preg_match_all()).

RegexIterator::GET_MATCH

Возвращает первое совпадение для текущей записи (смотрите preg_match()).

RegexIterator::MATCH

Только выполнение сравнения (фильтра) для текущей записи (смотрите preg_match()).

RegexIterator::REPLACE

Замена текущей записи (смотрите preg_replace(); Полностью пока не реализовано)

RegexIterator::SPLIT

Возвращает разделенные значения для текущей записи (смотрите preg_split()).

Флаги RegexIterator

RegexIterator::USE_KEY

Специальный флаг: Сравнивать ключ записи вместо значения записи.

Содержание

Коментарии

An exemple :

<?php
$a 
= new ArrayIterator(array('test1''test2''test3'));
$i = new RegexIterator($a'/^(test)(\d+)/'RegexIterator::REPLACE);
$i->replacement '$2:$1';
       
print_r(iterator_to_array($i));
/*
Array
(
    [0] => 1:test
    [1] => 2:test
    [2] => 3:test
)
*/
?>
2010-12-10 14:28:18
http://php5.kiev.ua/manual/ru/class.regexiterator.html
In case the difference between modes RegexIterator::MATCH and RegexIterator::GET_MATCH is not immediately clear:

MATCH will only return one value per matched element, as a string.

GET_MATCH will return as many values, per matched element, as there are sub-patterns. If there are sub-patterns, each iteration returns an indexed array with the full pattern match at 0 and each of the sub-pattern matches as another element.

If there are no sub-patterns, the behaviour of GET_MATCH is the same as MATCH.
2023-01-06 08:29:18
http://php5.kiev.ua/manual/ru/class.regexiterator.html

    Поддержать сайт на родительском проекте КГБ