PHP 8.6.0 Beta 1 is available for testing

La clase RegexIterator

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

Introducción

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

Sinopsis de la clase

class RegexIterator extends FilterIterator {
/* Constantes */
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 ;
/* Propiedades */
public ?string $replacement = null;
/* Métodos */
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
/* Métodos heredados */
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
}

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.

RegexIterator::INVERT_MATCH

Invierte el valor de retorno de RegexIterator::accept() .

Propiedades

replacement

Tabla de contenidos

Found A Problem?

Learn How To Improve This PageSubmit a Pull RequestReport a Bug
+add a note

User Contributed Notes 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.
+add a note

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