使用正则表达式在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不是我的母语,所以我只是用已经存在的东西。谢谢你的时间,我的朋友,有了你的答案,我可以更接近我想要的。谢谢。这就是我目前正在寻找的。它工作得很好。