2024 年 PHP Conference Japan

RegexIterator 類別

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

簡介

此迭代器可用於根據正規表達式篩選另一個迭代器。

類別概要

類別 RegexIterator 繼承自 FilterIterator {
/* 常數 */
公開 常數 整數 USE_KEY;
公開 常數 整數 INVERT_MATCH;
公開 常數 整數 MATCH;
公開 常數 整數 GET_MATCH;
公開 常數 整數 ALL_MATCHES;
公開 常數 整數 SPLIT;
公開 常數 整數 REPLACE;
/* 屬性 */
公開 $replacement = null;
/* 方法 */
公開 __construct(
    迭代器 $iterator,
    字串 $pattern,
    整數 $mode = RegexIterator::MATCH,
    整數 $flags = 0,
    整數 $pregFlags = 0
)
公開 accept(): 布林值
公開 getFlags(): 整數
公開 getMode(): 整數
公開 getPregFlags(): 整數
公開 getRegex(): 字串
公開 setFlags(int $flags): void
公開 setMode(int $mode): void
公開 setPregFlags(int $pregFlags): void
/* 繼承的方法 */
}

預定義常數

RegexIterator 運算模式

RegexIterator::ALL_MATCHES

傳回目前項目的所有符合項目(參見 preg_match_all())。

RegexIterator::GET_MATCH

傳回目前項目的第一個符合項目(參見 preg_match())。

RegexIterator::MATCH

僅對目前項目執行比對(過濾)(參見 preg_match())。

RegexIterator::REPLACE

取代目前項目(參見 preg_replace();尚未完整實作)。

RegexIterator::SPLIT

傳回目前項目的分割值(參見 preg_split())。

RegexIterator 旗標

RegexIterator::USE_KEY

特殊旗標:比對項目鍵名而非項目值。

RegexIterator::INVERT_MATCH

反轉 RegexIterator::accept() 的傳回值。

屬性

replacement

目錄

新增註釋

使用者貢獻的註釋 2 則註釋

jinmoku at hotmail dot com
13 年前
範例

<?php
$a
= new ArrayIterator(array('test1', 'test2', 'test3'));
$i = new RegexIterator($a, '/^(test)(\d+)/', RegexIterator::REPLACE);
$i->replacement = '$2:$1';

print_r(iterator_to_array($i));
/*
陣列
(
[0] => 1:test
[1] => 2:test
[2] => 3:test
)
*/
?>
chris dot snyder at totara dot com
1 年前
如果 RegexIterator::MATCH 和 RegexIterator::GET_MATCH 模式之間的差異不是很清楚

MATCH 將只針對每個符合的元素傳回一個值,作為字串。

GET_MATCH 將針對每個符合的元素傳回與子模式數量一樣多的值。如果有子模式,每次迭代都會傳回一個索引陣列,其中完整模式匹配位於索引 0,每個子模式匹配作為另一個元素。

如果沒有子模式,GET_MATCH 的行為與 MATCH 相同。
To Top