使用正则表达式在php中拆分字符串

使用正则表达式在php中拆分字符串,php,regex,arrays,string,preg-split,Php,Regex,Arrays,String,Preg Split,如何拆分此字符串: |^^^*|^^^*|^^^*|^^^*|^^^*|myvalue^nao^nao^nao*|myvalue^nao^nao^nao*|myvalue^nao^nao^nao*|^^^*|^^^*|^^^*|^^^*|^^^*|^^^*|^^^*|^^^*|^^^*|^^^*|^^^*|^^^* 所以我只能得到“mayvalue”的值 目前,我正在使用: $text = preg_split("/[^\|(*.?)\^$]/", $other); 但它返回myvalue^

如何拆分此字符串:

|^^^*|^^^*|^^^*|^^^*|^^^*|myvalue^nao^nao^nao*|myvalue^nao^nao^nao*|myvalue^nao^nao^nao*|^^^*|^^^*|^^^*|^^^*|^^^*|^^^*|^^^*|^^^*|^^^*|^^^*|^^^*|^^^*
所以我只能得到“mayvalue”的值

目前,我正在使用:

$text = preg_split("/[^\|(*.?)\^$]/", $other);
但它返回
myvalue^nao


有什么想法吗?

你可以拆分两次,一次在
|
上,另一次在
^
上;如果您的大字符串位于
$input
中,则:

$pipes = preg_split('/\|/', $input);
$want  = preg_split('/\^/', $pipes[6]);
然后,
$want[0]
就有了你想要的东西。这可能比试图想出一个正则表达式来拆分要容易得多

演示:

由于谢塞克还没有回来,我将包括他们建议的方法。由于使用的是简单分隔符,因此也可以使用两次:

$pipes = explode('|', $input);
$want  = explode('^', $pipes[6]);
同样,
$want[0]
也有您想要的东西

这个方法的一个演示:

这将得到所有“myvalue”和其他字符串,它们放在数组中
|
之后和
^
之前,
$matches[1]

$text = preg_match_all("/\|(.*?)\^.*?\^.*?\^.*?\*/", $other, $matches);

你只是想得到myvalue这个词吗?如果是这样的话,你可以使用boundry/bmyvalue/b这个词,如果它只是一个普通的字符串,那么最好使用
explode()
。。。不需要打电话regex@shesek:你应该把它扩展成一个答案,PHP不是我的母语,所以我只是用已经存在的东西。谢谢你的时间,我的朋友,有了你的答案,我可以更接近我想要的。谢谢。这就是我目前正在寻找的。它工作得很好。