正则从汉字字符串中取某一个汉字
程序员文章站
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的。尤文球迷给的答案我试过了可以的,编码问题总是令人蛋疼。