English | 简体中文 | 繁體中文
查询

RegexIterator::setMode()函数—用法及示例

「 设置正则表达式迭代器的搜索模式 」


函数:RegexIterator::setMode()

适用版本:PHP 5 >= 5.2.0, PHP 7

用法:RegexIterator::setMode(int $mode) : void

说明:该方法用于设置正则表达式迭代器的搜索模式。

参数:

  • $mode:整数类型,表示搜索模式。可选值有以下几种:
    • RegexIterator::MATCH:表示只返回匹配正则表达式的元素(默认值)。
    • RegexIterator::GET_MATCH:返回完整的匹配数组(包含所有分组)。
    • RegexIterator::ALL_MATCHES:返回所有匹配的数组(每个匹配对应一个数组)。
    • RegexIterator::SPLIT:根据正则表达式将每个元素拆分为一个数组。

示例:

$fruits = array("apple", "banana", "cherry", "date", "elderberry");

// 创建一个正则表达式迭代器,只返回以字母"c"开头的水果
$iterator = new RegexIterator(new ArrayIterator($fruits), '/^c/i');

// 设置搜索模式为RegexIterator::MATCH
$iterator->setMode(RegexIterator::MATCH);

// 遍历迭代器并输出匹配的水果
foreach ($iterator as $fruit) {
    echo $fruit . "\n";
}
// 输出:cherry

// 设置搜索模式为RegexIterator::GET_MATCH
$iterator->setMode(RegexIterator::GET_MATCH);

// 遍历迭代器并输出完整的匹配数组
foreach ($iterator as $fruit) {
    echo implode(", ", $fruit) . "\n";
}
// 输出:cherry

// 设置搜索模式为RegexIterator::ALL_MATCHES
$iterator->setMode(RegexIterator::ALL_MATCHES);

// 遍历迭代器并输出所有匹配的数组
foreach ($iterator as $fruit) {
    foreach ($fruit as $match) {
        echo implode(", ", $match) . "\n";
    }
}
// 输出:ch, c

注意:以上示例中,正则表达式迭代器被创建并应用于一个包含水果的数组。通过设置不同的搜索模式,我们可以控制迭代器的行为,返回不同类型的结果。

补充纠错
热门PHP函数
分享链接