文字

RecursiveRegexIterator::__construct

(PHP 5 >= 5.2.0)

RecursiveRegexIterator::__constructCreates a new RecursiveRegexIterator.

说明

public RecursiveRegexIterator::__construct ( RecursiveIterator $iterator , string $regex [, int $mode = self::MATCH [, int $flags = 0 [, int $preg_flags = 0 ]]] )

Creates a new regular expression iterator.

参数

iterator

The recursive iterator to apply this regex filter to.

regex

The regular expression to match.

mode

Operation mode, see RegexIterator::setMode() for a list of modes.

flags

Special flags, see RegexIterator::setFlags() for a list of available flags.

preg_flags

The regular expression flags. These flags depend on the operation mode parameter:

RegexIterator preg_flags
operation mode available flags
RecursiveRegexIterator::ALL_MATCHES See preg_match_all() .
RecursiveRegexIterator::GET_MATCH See preg_match() .
RecursiveRegexIterator::MATCH See preg_match() .
RecursiveRegexIterator::REPLACE none.
RecursiveRegexIterator::SPLIT See preg_split() .

范例

Example #1 RecursiveRegexIterator::__construct() example

Creates a new RegexIterator that filters all strings that start with '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 ()) {

        
// print all children
        
echo  "Children: " ;
        foreach (
$rRegexIterator -> getChildren () as  $key  =>  $value ) {
            echo 
$value  " " ;
        }
        echo 
"\n" ;
    } else {
        echo 
"No children\n" ;
    }

}
?>

以上例程的输出类似于:

No children
Children: test4 test5

参见

  • preg_match() - 执行一个正则表达式匹配
  • preg_match_all() - 执行一个全局正则表达式匹配
  • preg_replace() - 执行一个正则表达式的搜索和替换
  • preg_split() - 通过一个正则表达式分隔字符串

用户评论:

[#1] SongoQ [2009-10-27 23:22:18]

RecursiveRegexIterator::ALL_MATCHES List all subdirectories and files.

<?php

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

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

上一篇: 下一篇: