PHP中文文字正则替换,并将匹配的中文文字加粗

$str="中文123美丽abc开心。?我们";//结果为:<b>中文</b>123<b>美丽</b>abc<b>开心</b>。?<b>我们</b>GB2312,只取中文... $str = "中文123美丽abc开心。?我们";
//结果为:<b>中文</b>123<b>美丽</b>abc<b>开心</b>。?<b>我们</b>

GB2312,只取中文文字,不包括中文全角符号、英文、数字等其他符号。下面是一些参考,但会把中文符号也匹配到,求修正。

<?php
$str = "中文123美丽abc开心。?我们";
echo preg_replace('|([\xa0-\xff]+)|','<b>\1</b>',$str);
?>
展开
 我来答
Zjmainstay
2013-05-15 · 知道合伙人互联网行家
Zjmainstay
知道合伙人互联网行家
采纳数:580 获赞数:1129
http://www.zjmainstay.cn

向TA提问 私信TA
展开全部
<?php
$str = "中文123美丽abc开心。?我们";
echo preg_replace('#(?:(?![,。?])[\xC0-\xFF][\x80-\xBF]+)+#','<b>$0</b>',$str);
//(?:[\xC0-\xFF][\x80-\xBF]+)  单个中文字符,不需要引用,因此使用?:
//(?![,。?]) 排除中文标点符号,这里要写入中文标点
//(?:(?![,。?])[\xC0-\xFF][\x80-\xBF]+)  排除中文标点符号后的中文字符
//(?:[\xC0-\xFF][\x80-\xBF]+)+ 1个以上的中文字符
//结果 <b>中文</b>123<b>美丽</b>abc<b>开心。?我们</b>
?>
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式