RegexIterator::__construct

新しい RegexIterator を作成する

説明

public RegexIterator::__construct(
    Iterator $iterator,
    string $pattern,
    int $mode = RegexIterator::MATCH,
    int $flags = 0,
    int $pregFlags = 0
)

新しい RegexIterator を作成します。これは、正規表現を使って Iterator をフィルタリングします。

パラメータ

iterator

この正規表現フィルタを適用するイテレータ。

pattern

マッチさせる正規表現。

mode

操作モード。モードの一覧は RegexIterator::setMode を参照ください。

flags

特殊なフラグ。フラグの一覧は RegexIterator::setFlags を参照ください。

pregFlags

正規表現フラグ。これらのフラグは操作モードに依存します。

RegexIterator preg_flags
操作モード 使用可能なフラグ
RegexIterator::ALL_MATCHES preg_match_all を参照ください。
RegexIterator::GET_MATCH preg_match を参照ください。
RegexIterator::MATCH preg_match を参照ください。
RegexIterator::REPLACE なし。
RegexIterator::SPLIT preg_split を参照ください。

エラー / 例外

引数 pattern が無効な場合に InvalidArgumentException をスローします。

例1 RegexIterator::__construct の例

'test' で始まるすべての文字列を取り出す新しい RegexIterator を作成します。

<?php
$arrayIterator = new ArrayIterator(array('test 1', 'another test', 'test 123'));
$regexIterator = new RegexIterator($arrayIterator, '/^test/');

foreach ($regexIterator as $value) {
    echo $value . "\n";
}
?>

上の例の出力は、 たとえば以下のようになります。

test 1
test 123

参考

  • preg_match
  • preg_match_all
  • preg_replace
  • preg_split