RegexIterator クラス
(PHP 5 >= 5.2.0, PHP 7, PHP 8)
はじめに
このイテレータを使うと、別のイテレータを正規表現でフィルタリングすることができます。
クラス概要
定義済み定数
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
目次
- RegexIterator::accept — 受け入れ状況を取得する
- RegexIterator::__construct — 新しい RegexIterator を作成する
- RegexIterator::getFlags — フラグを取得する
- RegexIterator::getMode — 操作モードを返す
- RegexIterator::getPregFlags — 正規表現フラグを返す
- RegexIterator::getRegex — 現在の正規表現を返す
- RegexIterator::setFlags — フラグを設定する
- RegexIterator::setMode — 操作モードを設定する
- RegexIterator::setPregFlags — 正規表現フラグを設定する
+add a note
User Contributed Notes 2 notes
jinmoku at hotmail dot com ¶
14 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
)
*/
?>
chris dot snyder at totara dot com ¶
1 year 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.