為什么這樣寫不行,錯在哪里?
<?php $str?=?'主要有以下幾個文件:index.php,?style.css,?common.js'; //將目標字符串$str中的文件名替換后增加em標簽 $pattern?=?'/(\w+\.\w+),(\w+\.\w+),(\w+\.\w+)/'; $replace?=?'<em>$1</em>,<em>$2</em>,<em>$3</em>'; echo?preg_replace($pattern,$replace,$str);
<?php $str?=?'主要有以下幾個文件:index.php,?style.css,?common.js'; //將目標字符串$str中的文件名替換后增加em標簽 $pattern?=?'/(\w+\.\w+),(\w+\.\w+),(\w+\.\w+)/'; $replace?=?'<em>$1</em>,<em>$2</em>,<em>$3</em>'; echo?preg_replace($pattern,$replace,$str);
2016-01-18
舉報
2016-01-30
錯了:
你的“,”沒有轉義。
“,”后面的空格也沒有去檢測。
我的demo:
$str = '主要有以下幾個文件:index.php, style.css, common.js';
//將目標字符串$str中的文件名替換后增加em標簽
$p = '/(\w+\.\w+)\,\s(\w+\.\w+)\,\s(\w+\.\w+)/';
$replace = '<em>$1</em> , <em>$2</em>, <em>$3</em>';
preg_match($p,$str,$matches);
echo preg_replace($p,$replace,$str);
初學者,相互學習一下。
2016-03-26
$pattern 中的兩個,后邊的空格你沒有加上,加上就是對的,還有就是"."是不用轉譯的。更正后如下:
$str = '主要有以下幾個文件:index.php, style.css, common.js';
//將目標字符串$str中的文件名替換后增加em標簽
?$pattern = '/(\w+.\w+), (\w+.\w+), (\w+.\w+)/';
?$replace = '<em>$1</em>,<em>$2</em>,<em>$3</em>';
?echo preg_replace($pattern,$replace,$str);
2016-03-11
因為你沒有加空格,在逗號后面有個空格,加上你的就正確了
2016-01-18
這樣寫沒錯吧