函数:RegexIterator::__construct()
适用版本:PHP 5, PHP 7
用法:RegexIterator::__construct() 函数用于创建一个新的 RegexIterator 对象。
语法:public RegexIterator::__construct(Iterator $iterator, string $regex [, int $mode = self::MATCH [, int $flags = 0 [, int $preg_flags = 0 ]]])
参数:
$iterator
:要进行正则匹配的迭代器对象。$regex
:正则表达式,用于匹配迭代器中的元素。$mode
(可选):匹配模式。可选值如下:RegexIterator::MATCH
:返回匹配正则表达式的元素。RegexIterator::GET_MATCH
:返回完整的匹配结果。RegexIterator::ALL_MATCHES
:返回所有匹配结果。RegexIterator::SPLIT
:使用正则表达式将元素拆分为多个元素。RegexIterator::REPLACE
:使用正则表达式替换元素。
$flags
(可选):用于修改匹配行为的标志。可选值如下:RegexIterator::USE_KEY
:将键值与正则表达式一起匹配。RegexIterator::INVERT_MATCH
:返回不匹配正则表达式的元素。
$preg_flags
(可选):用于修改正则表达式匹配行为的标志。具体可用的标志请参考 PHP 的 preg_match() 函数的文档。
返回值:无返回值。
示例:
$array = ['apple', 'banana', 'cherry', 'date'];
$iterator = new ArrayIterator($array);
$regexIterator = new RegexIterator($iterator, '/^a/');
foreach ($regexIterator as $key => $value) {
echo $key . ' => ' . $value . "\n";
}
输出:
0 => apple
在上面的示例中,我们创建了一个 ArrayIterator 对象,然后使用 RegexIterator 对象对其进行正则匹配。正则表达式 /^a/
匹配以字母 "a" 开头的元素。在 foreach 循环中,我们可以看到只有 "apple" 满足这个条件,所以只有键值对 0 => apple
被打印出来。