Класс RegexIterator

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

Введение

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

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

class RegexIterator extends FilterIterator {
/* Константы */
public const int USE_KEY;
public const int INVERT_MATCH;
public const int MATCH;
public const int GET_MATCH;
public const int ALL_MATCHES;
public const int SPLIT;
public const int REPLACE;
/* Свойства */
public ?string $replacement = null;
/* Методы */
public __construct(
    Iterator $iterator,
    string $pattern,
    int $mode = RegexIterator::MATCH,
    int $flags = 0,
    int $pregFlags = 0
)
public accept(): bool
public getFlags(): int
public getMode(): int
public getPregFlags(): int
public getRegex(): string
public setFlags(int $flags): void
public setMode(int $mode): void
public setPregFlags(int $pregFlags): void
/* Наследуемые методы */
public FilterIterator::accept(): bool
public FilterIterator::next(): void
public FilterIterator::rewind(): void
public FilterIterator::valid(): bool
public IteratorIterator::next(): 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

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

RegexIterator::INVERT_MATCH

Инвертирует возвращаемое значение RegexIterator::accept().

Свойства

replacement

Содержание

add a note

User Contributed Notes 1 note

up
33
jinmoku at hotmail dot com
11 years ago
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
)
*/
?>
To Top