2012-03-29 11 views
0

以下のタイプの文字列があります。正規表現で文字列を配列に分割する方法

[test1,3、(257305435900)]

今私は、配列のセルにこの文字列を分割したいです。この1

term => 'test1', 
num => 3, 
info => array{ [0]=> 275, [1]=> 435, [2]=> 900 } 

のようにいずれか....事前に感謝し、この文字列の正規表現パターンを知ることができます。

答えて

4

おそらくpreg_match_allを使用します。

$string = "[test1,3,(257,305,435,900)]"; 

preg_match_all('/\[(?P<term>\w+),(?P<num>\d+),\((?P<info>[\d,]+)\)\]/', $string, $out); 

$results = array (
    'term' => $out['term'][0], 
    'num' => $out['num'][0], 
    'info' => explode(',', $out['info'][0]) 
); 

var_dump($results); 
+0

NB: 'split()'は 'E_DEPRECATED'を送出し、代わりに' explode() 'を使います。しかし、+1、これはうまく動作します。 – DaveRandom

+0

ありがとう@DaveRandom。なぜ 'split()'は非推奨ですか? –

+0

あなたの素早く正確な応答をありがとう、実際には私の文字列データはこの形式です..... [test1,3、(257,305,435,900)] OR [test1,1、(673)] OR [test1,1、( )] ..... ..... ie:regxがこの形式で動作するように.....もう一度感謝します。 –

関連する問題