把“男:XXX女:XXXX男:XXX男:XXX女:XXXX”这种形式的字符串转变成数组

7_youyu
  • 8

我想把“男:XXX女:XXXX男:XXX男:XXX女:XXXX”这种形式的字符串转变成 array(['sex'=>'男','content'=>''XXX],['sex'=>'女','content'=>''XXX],…)这种形式的数组,有什么好的思路么?

回复
阅读 1.8k
3 个回答

正则?/(男|女):[^男女]+/g

image.png

若是用php正则,慎重起见,你需要先将汉字男女的unicode编码查找出来,然后再用正则。如下所示
image.png

PHP

preg_match_all('/(男|女):[^男女]+/','男:XXX女:XXXX男:XXX男:XXX女:XXXX',$matches);
$res = array_map(function($node){
        $nodeArr = explode(':',$node);
        return ['sex'=>$nodeArr[0],'content'=>$nodeArr[1]];
    },$matches[0]);
echo json_encode($res);

结果
image.png

宣传栏