为了拆分字符串,我使用了以下代码。
$string = "-sev*yes-sev1*no-sev2*yes";
split('[-*]', $string).
由于 split 已被弃用,您能否建议一种将字符串拆分为数组的替代方法。我试过爆炸,但它没有达到我的目的。 输出应该是这样的,
Array
(
[0] => sev
[1] => yes
[2] => sev1
[3] => no
[4] => sev2
[5] => yes
)
感谢大家的回复。我尝试了 preg_split('[-*]', $string)
。它已经拆分了字符串字符。我已将其修改为 preg_split('/[-*]/', $string)
。它运作良好。如果您能向我解释其中的区别,那就太好了。
最佳答案
您可以使用 preg_split作为:
$string = "-sev*yes-sev1*no-sev2*yes";
$array = preg_split('/-|\*/', $string,-1, PREG_SPLIT_NO_EMPTY);
或
$array = preg_split('/-|\*/', $string);
或者你也可以使用strtok :
$tok = strtok($string, "-*");
$array = array();
while ($tok !== false) {
$array[] = $tok;
$tok = strtok("-*");
}
编辑:
在
preg_split('[-*]', $string);
[ ]
被视为分隔符而不是 char 类,因此您使用正则表达式 -*
进行拆分,这意味着零个或多个连字符。
但是在
preg_split('/[-*]/', $string);
您正在使用正则表达式 [-*]
,它是匹配 *
或 -
关于php - 如何在 PHP 中拆分 * 和 - 上的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3556727/