为了账号安全,请及时绑定邮箱和手机立即绑定

为什么我这样写<em>没有效果呢

$str = '主要有以下几个文件:index.php, style.css, common.js';

//将目标字符串$str中的文件名替换后增加em标签

$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;


https://img1.sycdn.imooc.com//5c24c0440001296803960133.jpg



正在回答

1 回答

  1. 汉子匹配不能用\w,并且你写的是\m,还用注意冒号是中文的冒号“:”,逗号也是中文的逗号。

  2. 此处不适合用数组匹配,因为还用处理中文。

  3. 即使按照数组来做匹配,下标是针对每个数组元素分别计算的,你从1-4显然是错误的。

  4. 改成 这样就OK了。

  5. $patterns='/(\w+\.\w+)/';
    $replace='<em>$1</em>';
    $str=preg_replace($patterns,$replace,$str);
    echo $str;
1 回复 有任何疑惑可以回复我~
#1

慕码人1187127 提问者

懂了,谢谢你的回答
2018-12-30 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么我这样写<em>没有效果呢

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信