3

我有一个 PHP 脚本,它使用 prey_split 将字符串拆分为数组。preg_split 代码是:

preg_split("~(?<!\*):~", $val);

这实质上是在有冒号的地方分割字符串,没有前面的星号。例如:"h*:el:lo"变成array("h*:el", "lo")

在拆分大量字符串时,此过程非常耗费资源且速度较慢。有没有更快的方法来实现这一点?

4

2 回答 2

1

你可以尝试这样的事情:

$string = "h*:el:lo";
$string = str_replace("*:", "#", $string);
$array = explode(":", $string);

我不确定速度会怎样。但是一旦你从字符串中删除 *: 位,它就很容易爆炸。如果需要,也许您可​​以在操作后将 *: 放回原处。

于 2013-03-19T11:54:36.540 回答
0

你需要使用preg_split()吗?因为它更容易使用preg_match_all()

preg_match_all('/(?:^|:)([^*:]+(?:\*.[^*:]+)*)/', $subject, $result, PREG_PATTERN_ORDER);
$result = $result[1];
于 2013-03-19T12:54:29.873 回答