时间:2021-07-01 10:21:17 帮助过:4人阅读
$s='A, B, C(x, y("z", 2, 0)), D, E';
$keywords = preg_split("/\,\s(?=[A-Z])/", $s);
var_dump($keywords);
$s='A, B, C(X, Y("Z", 1, 0)), D(X, Y("Z", 2, 0)), E,F(X, Y("Z", 3, 0))';
//提取获取里面的内容
preg_match_all("/\(.*?\)\)/",$s,$match);//这部分正则可以自行修改
$s = str_replace($match[0],'%',$s);//将整体的替换成某个符合,%百分号也可以自己选定
$exs = explode(',',$s);
$i = 0;
foreach($exs as $key=>$value){
if (strpos($value,"%") !== false) {
$exs[$key] = str_replace('%',$match[0][$i],$value);
$i ++;
}
}
var_dump($exs);
$s='A, B, C(x, Y("z", 2, 0)), D, E';
print_r(foo($s));
function foo($s) {
$r = array();
$m = 0;
$t = '';
for($i=0; $iif($s{$i} == '(') $m++;
if($s{$i} == ')') $m--;
if($m == 0 && $s{$i} == ',') {
if($t) $r[] = $t;
$t = '';
}else $t .= $s{$i};
}
if($t) $r[] = $t;
return $r;
}
Array
(
[0] => A
[1] => B
[2] => C(x, Y("z", 2, 0))
[3] => D
[4] => E
)