PHP 8.6.0 Beta 1 is available for testing

Класс 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 function __construct (
Iterator $iterator,
string $pattern,
int $mode = RegexIterator::MATCH ,
int $flags = 0,
int $pregFlags = 0
)
public function accept (): bool
public function getFlags (): int
public function getMode (): int
public function getPregFlags (): int
public function getRegex (): string
public function setFlags (int $flags): void
public function setMode (int $mode): void
public function setPregFlags (int $pregFlags): void
/* Наследуемые методы */
public function FilterIterator::accept (): bool
public function FilterIterator::current (): mixed
public function FilterIterator::key (): mixed
public function FilterIterator::next (): void
public function FilterIterator::rewind (): void
public function FilterIterator::valid (): bool
public function IteratorIterator::current (): mixed
public function IteratorIterator::key (): mixed
public function IteratorIterator::next (): void
public function IteratorIterator::rewind (): void
public function IteratorIterator::valid (): bool
}

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

Режимы работы 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

Содержание

Нашли ошибку?

ИнструкцияИсправлениеСообщение об ошибке
+Добавить

Примечания пользователей 2 notes

up
33
jinmoku at hotmail dot com
15 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
)
*/
?>
up
4
chris dot snyder at totara dot com
3 years ago
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.
+Добавить

AltStyle によって変換されたページ (->オリジナル) /