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);
?> 展开
//结果为:<b>中文</b>123<b>美丽</b>abc<b>开心</b>。?<b>我们</b>
GB2312,只取中文文字,不包括中文全角符号、英文、数字等其他符号。下面是一些参考,但会把中文符号也匹配到,求修正。
<?php
$str = "中文123美丽abc开心。?我们";
echo preg_replace('|([\xa0-\xff]+)|','<b>\1</b>',$str);
?> 展开
1个回答
2013-05-15 · 知道合伙人互联网行家
关注
展开全部
<?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>
?>
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询