(PHP 5 >= 5.2.0, PHP 7, PHP 8)
RegexIterator::__construct — 创建新的 RegexIterator
$iterator
,$pattern
,$mode
= RegexIterator::MATCH,$flags
= 0,$pregFlags
= 0创建一个新的 RegexIterator,它使用正则表达式过滤 Iterator。
iterator
要应用此正则表达式过滤器的迭代器。
pattern
要匹配的正则表达式。
mode
操作模式,有关模式列表,请参阅 RegexIterator::setMode()。
flags
特殊标志,有关可用标志的列表,请参阅 RegexIterator::setFlags()。
pregFlags
正则表达式标志。这些标志取决于操作模式参数
操作模式 | 可用标志 |
---|---|
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() 示例
创建一个新的 RegexIterator,它过滤所有以 'test' 开头的字符串。
<?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