2011-07-02 9 views
1

{SOME_STRING}を段落から配列として取得する必要があります。たとえば:段落から区切られた文字列を抽出する

Bla bla bla some {first} some string bla {second} bla bla ..... 

私は、この配列のようにそれらを取得する必要があります。

$array[0] = "first"; 
$array[1] = "second"; 

これは{SOME_STRING}ためREGEXパターンです:\{.+}

私はこの方法を使用することができますか?

+0

@yi_H:stockoverlfowがするように検索エンジンは、このような素敵な答えを与えることはありません。 – hakre

+0

と一般的にstackoverflowは、問題を単独で解決する方法を教えていません –

答えて

4
$str = "Bla bla bla some {first} some string bla {second} bla bla ....."; 
$matches = array(); 
preg_match_all("/\{(.+?)\}/", $str, $matches); 
$array = $matches[1]; 

var_dump($array); 

出力

array(2) { 
    [0]=> 
    string(5) "first" 
    [1]=> 
    string(6) "second" 
} 
+0

ドッグベルトありがとう、私たちはなぜこれを使用しているのか教えてください: '$ array = $ matches [1];'?私はpreg_match_allに関するphp.netのドキュメントを読んでいるが、私は理解できない。 – Eray

+0

正規表現はキャプチャグループ '(。+?)'を使用するので、 '$ matches [0]'は完全一致文字列 '{first}'と '{second} 'は、最初のキャプチャグループによる一致を含みます。 'var_dump($ matches)'を実行してみてください。 – Dogbert

+0

最初のグループ - > '{最初の} '、2番目のグループ - >'最初の '私は理解しました。ありがとう! – Eray

関連する問題