php正則替換內容的方法:1、用preg_replace(),可執行正則表達式的搜索和替換,語法“preg_filter (正則式,替換值,數據)”;2、用preg_filter(),語法“preg_filter(正則式,替換值,數據)”。
本教程操作環境:windows7系統、PHP7.1版、DELL G3電腦
在php中,可以使用下面兩個函數來實現正則替換內容
-
preg_replace():執行一個正則表達式的搜索和替換
-
preg_filter():執行一個正則表達式的搜索和替換
1、使用preg_replace()函數
preg_replace() 函數可以執行正則表達式的搜索和替換,是一個強大的字符串替換處理函數。語法格式:
preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] )
搜索 subject 中匹配 pattern 的部分, 以 replacement 進行替換。
參數說明:
-
$pattern: 要搜索的模式,可以是字符串或一個字符串數組。
-
$replacement: 用于替換的字符串或字符串數組。
-
$subject: 要搜索替換的目標字符串或字符串數組。
-
$limit: 可選,對于每個模式用于每個 subject 字符串的最大可替換次數。 默認是-1(無限制)。
-
$count: 可選,為替換執行的次數。
返回值
-
如果 subject 是一個數組, preg_replace() 返回一個數組, 其他情況下返回一個字符串。
-
如果匹配被查找到,替換后的 subject 被返回,其他情況下 返回沒有改變的 subject。如果發生錯誤,返回 NULL。
示例1:將 hello 替換為 phpcn
<?php $string = 'hello 123, 456'; $pattern = '/(w+) (d+), (d+)/i'; $replacement = 'phpcn ${2},$3'; echo preg_replace($pattern, $replacement, $string); ?>
示例2:刪除空格字符
<?php header('content-type:text/html;charset=utf-8'); $str = '歡 迎 來 到 p h p 中 文 網'; $str = preg_replace('/s+/', '', $str); // 將會改變為'歡迎來到php中文網' echo $str; ?>
2、使用preg_filter()函數
preg_filter() 函數也用于執行一個正則表達式的搜索和替換,等價于preg_replace() 函數;不同的是 preg_filter() 函數只返回匹配成功的結果,而 preg_replace() 返回所有結果,不管是否匹配成功。
示例:比較preg_filter() 和preg_replace()
<?php header('content-type:text/html;charset=utf-8'); $subject = array('1', 'a', '2', 'b', '3', 'A', 'B', '4'); $pattern = array('/d/', '/[a-z]/', '/[1a]/'); $replace = array('A:$0', 'B:$0', 'C:$0'); echo "preg_filter 返回值:"; var_dump(preg_filter($pattern, $replace, $subject)); echo "preg_replace 返回值:"; var_dump(preg_replace($pattern, $replace, $subject)); ?>
推薦學習:《PHP視頻教程》