PHP Conference Japan 2024

RecursiveRegexIterator::__construct

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

RecursiveRegexIterator::__construct建立新的 RecursiveRegexIterator

說明

public RecursiveRegexIterator::__construct(
    RecursiveIterator $iterator,
    字串 $pattern,
    整數 $mode = RecursiveRegexIterator::MATCH,
    整數 $flags = 0,
    int $pregFlags = 0
)

建立一個新的正規表示式迭代器。

參數

迭代器 (iterator)

要套用此正規表示式過濾器的遞迴迭代器。

模式 (pattern)

要匹配的正規表示式。

模式 (mode)

操作模式,請參閱 RegexIterator::setMode() 以取得模式列表。

旗標 (flags)

特殊旗標,請參閱 RegexIterator::setFlags() 以取得可用旗標列表。

pregFlags

正規表示式旗標。這些旗標取決於操作模式參數

RegexIterator preg_flags
操作模式 可用旗標
RecursiveRegexIterator::ALL_MATCHES 請參閱 preg_match_all()
RecursiveRegexIterator::GET_MATCH 請參閱 preg_match()
RecursiveRegexIterator::MATCH 請參閱 preg_match()
RecursiveRegexIterator::REPLACE 無。
RecursiveRegexIterator::SPLIT 請參閱 preg_split()

範例

範例 #1 RecursiveRegexIterator::__construct() 範例

建立一個新的 RegexIterator,它會過濾所有以 'test' 開頭的字串。

<?php
$rArrayIterator
= new RecursiveArrayIterator(array('test1', array('tet3', 'test4', 'test5')));
$rRegexIterator = new RecursiveRegexIterator($rArrayIterator, '/^test/',
RecursiveRegexIterator::ALL_MATCHES);

foreach (
$rRegexIterator as $key1 => $value1) {

if (
$rRegexIterator->hasChildren()) {

// 印出所有子項目
echo "子項目:";
foreach (
$rRegexIterator->getChildren() as $key => $value) {
echo
$value . " ";
}
echo
"\n";
} else {
echo
"沒有子項目\n";
}

}
?>

上述範例將輸出類似以下的內容

No children
Children: test4 test5

另請參閱

新增筆記

使用者貢獻的筆記 1 則筆記

SongoQ
15 年前
RecursiveRegexIterator::ALL_MATCHES 列出所有子目錄和檔案。

<?php

$a
= new RecursiveRegexIterator( new RecursiveDirectoryIterator(
'/home/songoq' ), '/mydir/i', RecursiveRegexIterator::ALL_MATCHES );

foreach( new
RecursiveIteratorIterator( $a ) as $s )
{
echo
$s."\n";
}
To Top