PHP 7.4.22 Released!

RegexIterator クラス

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

はじめに

このイテレータを使うと、別のイテレータを正規表現でフィルタリングすることができます。

クラス概要

class RegexIterator extends FilterIterator {
/* 定数 */
const int MATCH = 0;
const int GET_MATCH = 1;
const int ALL_MATCHES = 2;
const int SPLIT = 3;
const int REPLACE = 4;
const int USE_KEY = 1;
/* メソッド */
public __construct(
    Iterator $iterator,
    string $regex,
    int $mode = self::MATCH,
    int $flags = 0,
    int $preg_flags = 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 $preg_flags): void
/* 継承したメソッド */
public abstract FilterIterator::accept(): bool
public FilterIterator::next(): void
public FilterIterator::rewind(): void
public FilterIterator::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

特別なフラグ: エントリの値ではなく、キーにマッチさせます。

目次

add a note add a note

User Contributed Notes 1 note

up
29
jinmoku at hotmail dot com
10 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