ScotlandPHP 2019

La clase RegexIterator

(PHP 5 >= 5.2.0, PHP 7)

Introducción

Este iterador puede ser usado para filtrar otro iterador basado en una expresión regular.

Sinopsis de la Clase

RegexIterator extends FilterIterator {
/* Constantes */
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 ;
/* Métodos */
public __construct ( Iterator $iterator , string $regex [, int $mode = self::MATCH [, int $flags = 0 [, int $preg_flags = 0 ]]] )
public accept ( void ) : bool
public getFlags ( void ) : int
public getMode ( void ) : int
public getPregFlags ( void ) : int
public getRegex ( void ) : string
public setFlags ( int $flags ) : void
public setMode ( int $mode ) : void
public setPregFlags ( int $preg_flags ) : void
/* Métodos heredados */
public abstract FilterIterator::accept ( void ) : bool
public FilterIterator::current ( void ) : mixed
public FilterIterator::key ( void ) : mixed
public FilterIterator::next ( void ) : void
public FilterIterator::rewind ( void ) : void
public FilterIterator::valid ( void ) : bool
}

Constantes predefinidas

Modos de operación RegexIterator

RegexIterator::ALL_MATCHES

Devuelve todas las coincidencias de la entrada actual. (véase preg_match_all()).

RegexIterator::GET_MATCH

Devuelve la primera coincidencia de la entrada actual. (véase preg_match()).

RegexIterator::MATCH

Sólo ejecuta la coincidencia (filtro) para la entrada actual (véase preg_match()).

RegexIterator::REPLACE

Reemplaza la entrada actual (véase preg_replace(); No está completamente implementado)

RegexIterator::SPLIT

Devuelve los valores divididos de la entrada actual (véase preg_split()).

Flags RegexIterator

RegexIterator::USE_KEY

Flag especial: Coincidir con la clave de entrada en lugar del valor de la entrada.

Tabla de contenidos

add a note add a note

User Contributed Notes 1 note

up
22
jinmoku at hotmail dot com
8 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