我有一个PHP脚本,它使用prey_split将字符串拆分为数组。 preg_split代码是:
preg_split("~(?<!\*):~", $val);
基本上将字符串拆分为有冒号的字符串,没有前面的星号。
例如:"h*:el:lo"
变为array("h*:el", "lo")
当分割大量字符串时,此过程非常耗费资源并且速度很慢。 有没有更快的方法来实现这一目标?
答案 0 :(得分:1)
您可以尝试这样的事情:
$string = "h*:el:lo";
$string = str_replace("*:", "#", $string);
$array = explode(":", $string);
我不确定速度会是什么样的。但是一旦从字符串中删除*:位,就很容易爆炸。如果你需要,也许你可以在操作后把*:放回去。
答案 1 :(得分:0)
您需要使用preg_split()
吗?因为它更容易使用preg_match_all()
:
preg_match_all('/(?:^|:)([^*:]+(?:\*.[^*:]+)*)/', $subject, $result, PREG_PATTERN_ORDER);
$result = $result[1];