欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

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

程序员文章站 2022-04-20 14:33:10
...


我想取出“家”字


回复讨论(解决方案)

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的。尤文球迷给的答案我试过了可以的,编码问题总是令人蛋疼。