為什么我這樣寫<em>沒有效果呢
$str = '主要有以下幾個文件:index.php, style.css, common.js';
//將目標(biāo)字符串$str中的文件名替換后增加em標(biāo)簽
$patterns=array('/(\m+:)/','/\s*{(\w+\.\w+),}/','/\s*{(\w+\.\w+),}/','/\s*{(\w+\.\w+),}/');
$replace=array('\1','<em>$2</em>','<em>$3</em>','<em>$4</em>');
$str=preg_replace($patterns,$replace,$str);
echo $str;
2018-12-28
漢子匹配不能用\w,并且你寫的是\m,還用注意冒號是中文的冒號“:”,逗號也是中文的逗號。
此處不適合用數(shù)組匹配,因為還用處理中文。
即使按照數(shù)組來做匹配,下標(biāo)是針對每個數(shù)組元素分別計算的,你從1-4顯然是錯誤的。
改成 這樣就OK了。