为了拆分字符串,我使用了以下代码.
$string = "-sev*yes-sev1*no-sev2*yes";
split('[-*]', $string).
Run Code Online (Sandbox Code Playgroud)
由于拆分已弃用,您能否建议一种将字符串拆分为数组的替代方法.我试过爆炸,但它不符合我的目的.输出应该看起来像,
Array
(
[0] => sev
[1] => yes
[2] => sev1
[3] => no
[4] => sev2
[5] => yes
)
Run Code Online (Sandbox Code Playgroud)
谢谢大家的回复preg_split('[-*]', $string)..我试过了.它具有明智的字符串特征.我已将其修改为preg_split('/[-*]/', $string).它运作良好.如果你能解释我的区别,那将是很棒的.
你可以使用preg_split:
$string = "-sev*yes-sev1*no-sev2*yes";
$array = preg_split('/-|\*/', $string,-1, PREG_SPLIT_NO_EMPTY);
Run Code Online (Sandbox Code Playgroud)
要么
$array = preg_split('/-|\*/', $string);
Run Code Online (Sandbox Code Playgroud)
或者您也可以使用strtok:
$tok = strtok($string, "-*");
$array = array();
while ($tok !== false) {
$array[] = $tok;
$tok = strtok("-*");
}
Run Code Online (Sandbox Code Playgroud)
编辑:
在
preg_split('[-*]', $string);
Run Code Online (Sandbox Code Playgroud)
将[ ]被视为分隔符,而不是作为焦炭类,因此您所使用的正则表达式-*的分裂,这意味着零个或多个连字符.
但在
preg_split('/[-*]/', $string);
Run Code Online (Sandbox Code Playgroud)
你正在使用正则表达式[-*]匹配任何一个*或一个-