PHP Conference Japan 2024

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 条注释

-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