2011-12-14 11 views
1

オブジェクトの配列を集約する必要があります。 RegExを使用して角括弧で囲まれたテキストのすべてのインスタンスを収集することが理想的な方法であると仮定します。 (下記の例を参照)。PHP正規表現でテキストオブジェクトを抽出する

誰かが上記を実行するためにテキストをどのように読み上げるか説明してください。

$links = some [[text]] here and another [[link]] here 

ので$links[0][[text]]

答えて

3

に等しくなければならない。このパターンは、あなたの内側のグループとして二重括弧内のテキストを取得すると、外側ブラケットは完全なパターンマッチとして、含ま:

$matches = array(); 
$links = "some [[text]] here and another [[link]] here"; 
preg_match_all("/\[\[([^\]]+)\]\]/", $links, $matches); 
//---------------^^^^ Opening brackets [[ escaped 
//-------------------^^^^^^^^ One or more characters excluding ] grouped in() 
//---------------------------^^^^ Closing brackets ]] escaped 

var_dump($matches); 
array(2) { 
    [0]=> 
    array(2) { 
    [0]=> 
    string(8) "[[text]]" 
    [1]=> 
    string(8) "[[link]]" 
    } 
    [1]=> 
    array(2) { 
    [0]=> 
    string(4) "text" 
    [1]=> 
    string(4) "link" 
    } 
} 

あなたは必要なものを使うことができます。

echo $matches[0][1]; 
// [[link]] 
echo $matches[1][1]; 
// link 
+0

私はシンプルさが好きで、括弧内の値も取得できるようになりました! RegExで新しいですが、私の現在の仕事で本当にそれらを必要とし始めています。乾杯 – IEnumerable