php中的preg_match()函数不能匹配中文,求解!

<head><metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/></head><?php$m... <head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

</head>
<?php
$mode='/p.p/';
$str='p我p';
if (preg_match($mode, $str)) {
echo '匹配';
}else{
echo'不匹配';
}
?>
输出的是不匹配,为啥?我改成$mode='/p..p/';
也是不匹配,求解,是我这个函数错了吗?还是另有其他办法?
展开
 我来答
若以下回答无法解决问题,邀请你更新回答
匿名用户
2015-03-20
展开全部
你这个正则中的.不用直接用的。用 .* 就可以了。
更多追问追答
追问
目前学习阶段,我是用appserv的,是php5版本以上的,为啥还这样。或者具体有什么解决办法吗?重新更新appserv?
追答

刚才没有留意到你的正则问题。

<?php
$mode='/p.*?p/';        //这里修改了下就可以了。.代表一个英文字符,但未必就一定能获取到一个汉字,也许是这个问题吧。
$str='p我p';
 if (preg_match($mode, $str)) {
      echo '匹配';
 }else{
     echo'不匹配';
 }
?>
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式