Класс RegexIterator
(PHP 5 >= 5.2.0, PHP 7)
Введение
Этот итератор может быть использован для фильтрации другого итератора на основе регулярных выражений.
Обзор классов
$iterator
, string $regex
[, int $mode
= self::MATCH
[, int $flags
= 0
[, int $preg_flags
= 0
]]] )Предопределенные константы
Режимы работы 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
-
Специальный флаг: Сравнивать ключ записи вместо значения записи.
Содержание
- RegexIterator::accept — Проверка соответствия регулярному выражению
- RegexIterator::__construct — Конструктор класса RegexIterator
- RegexIterator::getFlags — Получение флагов настройки
- RegexIterator::getMode — Возвращает режим работы
- RegexIterator::getPregFlags — Возвращает флаги регулярного выражения
- RegexIterator::getRegex — Возвращает строку текущего регулярного выражения
- RegexIterator::setFlags — Установка флагов
- RegexIterator::setMode — Установка режима работы
- RegexIterator::setPregFlags — Задание флагов регулярного выражения
- PHP Руководство
- Функции по категориям
- Индекс функций
- Справочник функций
- Другие базовые расширения
- Стандартная библиотека PHP (SPL)
- Класс AppendIterator
- Класс ArrayIterator
- Класс CachingIterator
- Класс CallbackFilterIterator
- Класс DirectoryIterator
- Класс EmptyIterator
- Класс FilesystemIterator
- Класс FilterIterator
- Класс GlobIterator
- Класс InfiniteIterator
- Класс IteratorIterator
- Класс LimitIterator
- Класс MultipleIterator
- Класс NoRewindIterator
- Класс ParentIterator
- Класс RecursiveArrayIterator
- Класс RecursiveCachingIterator
- Класс RecursiveCallbackFilterIterator
- Класс RecursiveDirectoryIterator
- Класс RecursiveFilterIterator
- Класс RecursiveIteratorIterator
- Класс RecursiveRegexIterator
- Класс RecursiveTreeIterator
- Класс RegexIterator
Коментарии
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
)
*/
?>
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.