(PHP 5 >= 5.2.0, PHP 7, PHP 8)
RegexIterator::__construct — Конструктор класса RegexIterator
$iterator,$pattern,$mode = RegexIterator::MATCH,$flags = 0,$pregFlags = 0Создаёт новый объект класса RegexIterator, который фильтрует элементы итератора Iterator основываясь на регулярном выражении.
iteratorИтератор, к элементам которого требуется применить фильтр.
patternРегулярное выражение, на основе которого проводится отбор элементов.
modeРежим работы. Список возможных режимов можно посмотреть в описании к методу RegexIterator::setMode().
flagsСпециальные флаги. Список возможных флагов приведён в описании к методу RegexIterator::setFlags().
pregFlagsФлаги регулярного выражения. Список возможных флагов зависит от режима работы:
| режим работы | доступные флаги |
|---|---|
| RegexIterator::ALL_MATCHES | Смотрите preg_match_all(). |
| RegexIterator::GET_MATCH | Смотрите preg_match(). |
| RegexIterator::MATCH | Смотрите preg_match(). |
| RegexIterator::REPLACE | нет |
| RegexIterator::SPLIT | Смотрите preg_split(). |
Выбрасывает исключение InvalidArgumentException, если pattern задан некорректно.
Пример #1 Пример использования RegexIterator::__construct()
Создаёт новый объект RegexIterator, который отбирает строки, начинающиеся со слова 'test'.
<?php
$arrayIterator = new ArrayIterator(array('test 1', 'another test', 'test 123'));
$regexIterator = new RegexIterator($arrayIterator, '/^test/');
foreach ($regexIterator as $value) {
echo $value . "\n";
}
?>Вывод приведённого примера будет похож на:
test 1 test 123