我需要使用preg_split来分割下面的字符串,使用"}; {"作为分隔符。但我想在返回的数组中保留/返回}
和{
。
正则表达式可以做很多事情,但想知道这是否可以使用preg_split。
{'aid':10,'aSL'{'ac':true,'g_ac':true,'stats':0,'ldb':0,'g_':0},'hs':'4.8','l_p':1229241600},{'aid':80,'aSL':{'ac':0,'g_ac':0,'stats':0,'ldb':0,'g_':0}},{'aid':100,'aSL':{'ac':0,'g_ac':0,'stats':0,'ldb':0,'g_':0}},{'aid':30,'aSL':{'ac':true,'g_ac':true,'stats':0,'ldb':0,'g_':0}},{'aid':40,'aSL':{'ac':0,'g_ac':0,'stats':0,'ldb':0,'g_':0}},{'aid':60,'aSL':{'ac':true,'g_ac':true,'stats':0,'ldb':0,'g_':0}}
我希望它像这样返回
[0] => {'aid':10,'aSL':{'ac':true,'g_ac':true,'stats':0,'ldb':0,'g_':0},'hs':'4.8','l_p':1229241600}
[1] => {'aid':80,'aSL':{'ac':0,'g_ac':0,'stats':0,'ldb':0,'g_':0}
[2] => {'aid':100,'aSL':{'ac':0,'g_ac':0,'stats':0,'ldb':0,'g_':0}
[3] => {'aid':30,'aSL':{'ac':true,'g_ac':true,'stats':0,'ldb':0,'g_':0}
[4] => {'aid':40,'aSL':{'ac':0,'g_ac':0,'stats':0,'ldb':0,'g_':0}
[5] => {'aid':60,'aSL':{'ac':true,'g_ac':true,'stats':0,'ldb':0,'g_':0}
答案 0 :(得分:2)
答案 1 :(得分:1)
您可以在后面使用Regex Look并向前看:
<?php
$string = "{'aid':10,'aSL'{'ac':true,'g_ac':true,'stats':0,'ldb':0,'g_':0},'hs':'4.8','l_p':1229241600},{'aid':80,'aSL':{'ac':0,'g_ac':0,'stats':0,'ldb':0,'g_':0}},{'aid':100,'aSL':{'ac':0,'g_ac':0,'stats':0,'ldb':0,'g_':0}},{'aid':30,'aSL':{'ac':true,'g_ac':true,'stats':0,'ldb':0,'g_':0}},{'aid':40,'aSL':{'ac':0,'g_ac':0,'stats':0,'ldb':0,'g_':0}},{'aid':60,'aSL':{'ac':true,'g_ac':true,'stats':0,'ldb':0,'g_':0}}";
$matches = preg_split('/(?<=}),(?={)/', $string);
var_dump($matches);
返回:
array(6) {
[0]=>
string(92) "{'aid':10,'aSL'{'ac':true,'g_ac':true,'stats':0,'ldb':0,'g_':0},'hs':'4.8','l_p':1229241600}"
[1]=>
string(59) "{'aid':80,'aSL':{'ac':0,'g_ac':0,'stats':0,'ldb':0,'g_':0}}"
[2]=>
string(60) "{'aid':100,'aSL':{'ac':0,'g_ac':0,'stats':0,'ldb':0,'g_':0}}"
[3]=>
string(65) "{'aid':30,'aSL':{'ac':true,'g_ac':true,'stats':0,'ldb':0,'g_':0}}"
[4]=>
string(59) "{'aid':40,'aSL':{'ac':0,'g_ac':0,'stats':0,'ldb':0,'g_':0}}"
[5]=>
string(65) "{'aid':60,'aSL':{'ac':true,'g_ac':true,'stats':0,'ldb':0,'g_':0}}"
}