preg_replace 函數執行一個正規表示式的搜尋和取代。
文法
mixed 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。
實例
將google 替換為codercto
<?php $string = ' google 123, 456 ' ; $pattern = ' /(w+) (d+), (d+)/i ' ; $replacement = ' codercto ${2},$3 ' ; echo preg_replace ( $pattern , $replacement , $string ) ; ?>執行結果如下圖所示:
codercto 123,456
刪除空格字符
<?php $str = ' runo ob ' ; $str = preg_replace ( ' /s+/ ' , ' ' , $str ) ; //將會改變為'codercto' echo $str ; ?>執行結果如下圖所示:
codercto
使用基於數組索引的搜尋替換
<?php $string = ' The quick brown fox jumped over the lazy dog. ' ; $patterns = array ( ) ; $patterns [ 0 ] = ' /quick/ ' ; $patterns [ 1 ] = ' /brown/ ' ; $patterns [ 2 ] = ' /fox/ ' ; $replacements = array ( ) ; $replacements [ 2 ] = ' bear ' ; $replacements [ 1 ] = ' black ' ; $replacements [ 0 ] = ' slow ' ; echo preg_replace ( $patterns , $replacements , $string ) ; ?>執行結果如下圖所示:
The bear black slow jumped over the lazy dog.
使用參數count
<?php $count = 0 ; echo preg_replace ( array ( ' /d/ ' , ' /s/ ' ) , ' * ' , ' xp 4 to ' , - 1 , $count ) ; echo $count ; // 3 ?>執行結果如下圖所示:
xp***to3