0

如何拆分此字符串:

|^^^*|^^^*|^^^*|^^^*|^^^*|myvalue^nao^nao^nao*|myvalue^nao^nao^nao*|myvalue^nao^nao^nao*|^^^*|^^^*|^^^*|^^^*|^^^*|^^^*|^^^*|^^^*|^^^*|^^^*|^^^*|^^^*

所以我只能得到值“mayvalue”。

目前,我正在使用:

$text = preg_split("/[^\|(*.?)\^$]/", $other);

但它返回myvalue^nao

有任何想法吗?

4

2 回答 2

2

你可以分裂两次,一次|又一次^;如果您的大字符串在 中$input,则:

$pipes = preg_split('/\|/', $input);
$want  = preg_split('/\^/', $pipes[6]);

然后$want[0]有你所追求的。这可能比尝试提出一个要拆分的正则表达式更容易。

演示:http: //ideone.com/pxvay

由于shesek没有回来,我将包括他们建议的方法。您也可以使用explode两次,因为您使用的是简单的分隔符:

$pipes = explode('|', $input);
$want  = explode('^', $pipes[6]);

并再次$want[0]拥有您正在寻找的东西。

以及这种方法的演示:http: //ideone.com/SwGEH

于 2011-09-01T03:09:33.353 回答
0

这将把所有“myvalue”和其他字符串放在一个数组|之前和之后, :^$matches[1]

$text = preg_match_all("/\|(.*?)\^.*?\^.*?\^.*?\*/", $other, $matches);
于 2011-09-01T03:36:49.097 回答