語法: mixed preg_replace(mixed pattern, mixed replacement, mixed subject);
返回值: 混合類型資料
函數種類: 資料處理
內容說明: 本函數以 pattern 的規則來解析比對字符串 subject,欲取而代之的字符串為參數 replacement。返回值為混合類型資料,為取代後的字符串結果。
1. preg_replace()
$msg = preg_replace("/<style>.+</style>/is", "", $msg); -----刪除<style></style>和中間的部分
$msg = preg_replace("/<[^>]+>/", "", $msg); -----是刪除<>和中間的內容
i (PCRE_CASELESS)
如果設定此修正符,模式中的字符將同時匹配大小寫字母。
s (PCRE_DOTALL)
如果設定了此修正符,模式中的圓點元字符(.)匹配所有的字符,包括換行符。沒有此設定的話,則不包括換行符。這和 Perl 的 /s 修正符是等效的。排除字符類例如 [^a] 總是匹配換行符的,無論是否設定了此修正符。
2. ereg()與eregi()
注: preg_match() 函數通常是比 ereg() 更快的替代方案
eregi("<body([^>]+)>(.+)</body>",$data,$b)----察看$data中是否有body標簽。如果有,把參數賦值$b[0],中間部分賦值$b[1]。
bool ereg ( string pattern, string string [, array regs] )
int eregi ( string pattern, string string, array [regs] )
eregi()和 ereg() 類似,用法也相同。不同之處在於ereg()有區分大小寫,eregi()與大小寫無關
<?php教程
//preg_replace()和ereg_replace()函數的使用的比較
// -------preg_replace()--------------------------
//1.進行字符串的查找的替換
$str = "daoyu shi ge hao hai zi 5555";
$pattern = "/s/"; //如果將變量定義為$pattern_1會出錯
$str = preg_replace($pattern,'-',$str);
echo $str."<br>";
//2.對字符串的逆向引用
//方法一
$pat = "/(w+)-(w+)-(w+)-(w+)-(w+)-(w+)-(d+)/i";
$str =preg_replace($pat,"$1",$str);
echo $str."<br>";
//注意:如果是下面這種形式你會發現匹配的是:zi- 所以可以這樣認為在有次數的{6}的情況下,他($1)匹配的是最後一次
$pat = "/((w+)-){6}(d+)/i";
$str =preg_replace($pat,"$1",$str);
echo $str."<br>";
//方法二
$str = "daoyu-shi-ge-hao-hai-zi-5555";
$pat = "/(w+)-(w+)-(w+)-(w+)-(w+)-(w+)-(d+)/i";
$str =preg_replace($pat,"1",$str);
echo $str."<br>";
//注意:當正則寫成$pat= "/((w+)-){6}(d+)/i";時和上面的情況一樣