2010-12-15 21 views
2

括弧でくくられたサブパターンのすべての一致の配列を返すためにpreg_matchを使いたいと思います。唯一の完全な文字列と最後のマッチを返す...preg_matchでの同じ型の複数の一致

Array ([0] => [one][two][three], [1] => [three]) 

$input = '[one][two][three]'; 

    if (preg_match('/(\[[a-z0-9]+\])+/i', $input, $matches)) 
    { 
     print_r($matches); 
    } 

この版画:

私はこのコードを持っています。私はそれを返すようにします:

Array ([0] => [one][two][three], [1] => [one], [2] => [two], [3] => [three]) 

これはpreg_matchで行うことができますか?

答えて

2

preg_match_all()を使用して、+を削除してください。

$input = '[one][two][three]'; 

if (preg_match_all('/(\[[a-z0-9]+\])/i', $input, $matches)) { 
    print_r($matches); 
} 

は与える:

Array 
(
    [0] => Array 
     (
      [0] => [one] 
      [1] => [two] 
      [2] => [three] 
     ), 

    [1] => Array 
     (
      [0] => [one] 
      [1] => [two] 
      [2] => [three] 
     ) 
) 
1
$input = '[one][two][three]'; 

if (preg_match_all('/(\[[a-z0-9]+\])+/iU', $input, $matches)) 
{ 
    print_r($matches); 
} 
関連する問題