首页 >后端开发 >php教程 >正则从汉字字符串中取某一个汉字

正则从汉字字符串中取某一个汉字

WBOY
WBOY原创
2016-06-23 13:59:541087浏览

<?phpheader("Content-type: text/html; charset=gb2312"); $regex = '/大(\xhh{1})好啊/';   //这里该如何去写,我不会正则,希望大家能帮我解答一下,谢谢$str = '大家好啊';$matches = array(); if(preg_match($regex, $str, $matches)){    var_dump($matches);}?>


我想取出“家”字


回复讨论(解决方案)

header("Content-type: text/html; charset=utf-8");$regex = '/大(.*?)好啊/';$str = '大家好啊';$matches = array();  if(preg_match($regex, $str, $matches)){    var_dump($matches);//array(2) { [0]=> string(12) "大家好啊" [1]=> string(3) "家" }}

header("Content-type: text/html; charset=utf-8");$regex = '/大(.*?)好啊/';$str = '大家好啊';$matches = array();  if(preg_match($regex, $str, $matches)){    var_dump($matches);//array(2) { [0]=> string(12) "大家好啊" [1]=> string(3) "家" }}
如果我str里面还有字母,得用gb2312格式的该如何去写?

有什么区别吗?

$regex = '/大(.*?)好啊/';$str = '大家好啊';$matches = array();   if(preg_match($regex, $str, $matches)){    var_dump($matches);}
array(2) { [0]=> string(8) "大家好啊" [1]=> string(2) "家" } 

有什么区别吗?

$regex = '/大(.*?)好啊/';$str = '大家好啊';$matches = array();   if(preg_match($regex, $str, $matches)){    var_dump($matches);}
array(2) { [0]=> string(8) "大家好啊" [1]=> string(2) "家" }  会乱码。$str = 'a大家好啊';$regex = '/a大(.*?)好啊/';

会乱码。$str = 'a大家好啊';$regex = '/a大(.*?)好啊/';

header("Content-type: text/html; charset=gb2312"); $regex = '/大(.*?)好啊/';$str = '大家好啊';$str= mb_convert_encoding($str,'gb2312','UTF-8');$regex = mb_convert_encoding($regex,'gb2312','UTF-8');;$matches = array();   if(preg_match($regex, $str, $matches)){    var_dump($matches);//array(2) { [0]=> string(12) "大家好啊" [1]=> string(3) "家" }}

怎么可能?

$regex = '/a大(.*?)好啊/';$str = 'a大家好啊';$matches = array();    if(preg_match($regex, $str, $matches)){    var_dump($matches);}
array(2) { [0]=> string(9) "a大家好啊" [1]=> string(2) "家" } 

文件编码? ??    

谢谢回答问题各位大神,版主大人可能没看到我问题要求的编码是gb2312的。尤文球迷给的答案我试过了可以的,编码问题总是令人蛋疼。

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn