0

この文字列を分割するにはどうすればよいですか?

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

したがって、値「mayvalue」しか取得できません。

今のところ、私は使用しています:

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

しかし、それは戻りますmyvalue^nao

何か案は?

4

2 に答える 2

2

あなたは2回分割することができ|ます^。大きな文字列がにある場合、次のよう$inputになります。

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

次に$want[0]、あなたが求めているものがあります。これは、分割する1つの正規表現を考え出すよりもおそらく簡単です。

デモ: http: //ideone.com/pxvay

shesekが戻ってこなかったので、提案されたアプローチを含めます。explode単純な区切り文字を使用しているため、2回使用することもできます。

$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 に答える