RecursiveRegexIterator::__construct

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

RecursiveRegexIterator::__construct创建一个新的 RecursiveRegexIterator

描述

public RecursiveRegexIterator::__construct(
    RecursiveIterator $iterator,
    string $pattern,
    int $mode = RecursiveRegexIterator::MATCH,
    int $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 "Children: ";
foreach (
$rRegexIterator->getChildren() as $key => $value) {
echo
$value . " ";
}
echo
"\n";
} else {
echo
"No children\n";
}

}
?>

上面的示例将输出类似于以下内容

No children
Children: test4 test5

参见

添加笔记

用户贡献笔记 1 个笔记

SongoQ
14 年前
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