溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

PHP preg_replace_callback PCRE

發(fā)布時間:2020-07-10 14:37:25 來源:網(wǎng)絡(luò) 閱讀:405 作者:web全棧 欄目:web開發(fā)

定義和用法

preg_replace_callback?- 執(zhí)行一個正則表達式搜索并且使用一個回調(diào)進行替換

語法

preg_replace_callback?(?mixed?$pattern?,?callable?$callback?,?mixed?$subject?[,?int?$limit?=?-1?[,?int?&$count?]]?)

這個函數(shù)的行為除了 可以指定一個 callback 替代 replacement 進行替換 字符串的計算,其他方面等同于preg_replace()?。

參數(shù)

參數(shù)必需的描述
pattern要搜索的模式,可以是字符串或一個字符串?dāng)?shù)組。
callback一個回調(diào)函數(shù),在每次需要替換時調(diào)用,調(diào)用時函數(shù)得到的參數(shù)是從subject 中匹配到的結(jié)果?;卣{(diào)函數(shù)返回真正參與替換的字符串。這是該回調(diào)函數(shù)的簽名:handler ( array $matches )。你可能經(jīng)常會需要callback函數(shù)而 僅用于preg_replace_callback()一個地方的調(diào)用。在這種情況下,你可以 使用匿名函數(shù)來定義一個匿名函數(shù)作 為preg_replace_callback()調(diào)用時的回調(diào)。 這樣做你可以保留所有 調(diào)用信息在同一個位置并且不會因為一個不在任何其他地方使用的回調(diào)函數(shù)名稱而污染函數(shù)名稱空間。
subject要搜索替換的目標(biāo)字符串或字符串?dāng)?shù)組。
limit每個主題字符串中每個模式的最大可能替換數(shù)。 默認為-1(無限制)。
count如果指定,此變量將填充完成的替換次數(shù)。

返回值

如果subject是一個數(shù)組,?preg_replace_callback()返回一個數(shù)組,其他情況返回字符串。 錯誤發(fā)生時返回 NULL。 如果查找到了匹配,返回替換后的目標(biāo)字符串(或字符串?dāng)?shù)組), 其他情況subject 將會無變化返回。

示例

//?將文本中的年份增加一年.
$text?=?"April?fools?day?is?04/01/2002\n";
$text.=?"Last?christmas?was?12/24/2001\n";
//?回調(diào)函數(shù)
function?next_year($matches)
{
//?通常:?$matches[0]是完成的匹配
//?$matches[1]是第一個捕獲子組的匹配
//?以此類推
return?$matches[1].($matches[2]+1);
}
echo?preg_replace_callback(
"|(\d{2}/\d{2}/)(\d{4})|",
"next_year",
$text);

相關(guān)函數(shù)

preg_replace_callback()?- 執(zhí)行一個正則表達式搜索并且使用一個回調(diào)進行替換

preg_quote()?- 轉(zhuǎn)義正則表達式字符

preg_replace()?- 執(zhí)行一個正則表達式的搜索和替換

preg_last_error()?- 返回最后一個PCRE正則執(zhí)行產(chǎn)生的錯誤代碼

preg_replace_callback_array()?- 執(zhí)行正則表達式搜索并使用回調(diào)替換



向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI