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/';
也是不匹配,求解,是我这个函数错了吗?还是另有其他办法? 展开
<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/';
也是不匹配,求解,是我这个函数错了吗?还是另有其他办法? 展开
若以下回答无法解决问题,邀请你更新回答
1个回答
2015-03-20
展开全部
你这个正则中的.不用直接用的。用 .* 就可以了。
更多追问追答
追问
目前学习阶段,我是用appserv的,是php5版本以上的,为啥还这样。或者具体有什么解决办法吗?重新更新appserv?
追答
刚才没有留意到你的正则问题。
<?php
$mode='/p.*?p/'; //这里修改了下就可以了。.代表一个英文字符,但未必就一定能获取到一个汉字,也许是这个问题吧。
$str='p我p';
if (preg_match($mode, $str)) {
echo '匹配';
}else{
echo'不匹配';
}
?>
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询