php 正规替换的结果如何位移?

php 正规替换的结果怎么位移??

$str='<div _data="111"></div><div _data="222"></div><div _data="333"></div>';

$a=preg_replace('/\_data=[\"|\']([a-zA-Z0-9\_]+)([\s\"\']*)/eis', "data_array('\\1')", $str);
die($a);

function data_array($key){
$code=add_div("$key");
return "$code";
}

function add_div($v){
  $value="<div id=\"$v\"></div>";
  return "$value";
}


//得到的结果
***********************************************************************************************************
<div <div id="111"></div>></div>
<div <div id="222"></div>></div>
<div <div id="333"></div>></div>
***********************************************************************************************************


想要的结果

***********************************************************************************************************
***********************************************************************************************************
<div><div id="111"></div></div>
<div><div id="222"></div></div>
<div><div id="333"></div></div>
***********************************************************************************************************
***********************************************************************************************************

------解决方案--------------------
$a=preg_replace('/\s+\_data=[\"
------解决方案--------------------
\']([a-zA-Z0-9\_]+)([\s\"\']*)>/eis', "data_array('\\1')", $str);
die($a);
 
function data_array($key){
    $code=add_div($key);
    return $code;   
}
 
function add_div($v){   
      $value="><div id=\"$v\"></div>";
      return $value;   
}

------解决方案--------------------
$str='<div _data="111" class="aaa"></div><div _data="222" class="bbb"></div><p _data="333" class="ccc"></p>';

$a=preg_replace_callback('/<(\w+)\s+\_data=[\"
------解决方案--------------------
\']([a-zA-Z0-9\_]+)([\s\"\']*)\s*class="(.+?)"><\/\1>/is', "data_array", $str);
die($a);
  
function data_array($key){
    $code=add_div($key[4], $key[2]);
    return $code;   
}
  
function add_div($class, $id){   
      $value="<div class=\"$class\"><div id=\"$id\"></div></div>";
      return $value;   
}