2011-07-02 68 views
1

我需要從段落中獲取所有{SOME_STRING}作爲數組。例如:從段落中提取分隔字符串

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

我必須讓他們這樣的數組:

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

這是爲{} SOME_STRING的正則表達式模式\{.+}

我可以使用哪些方法?

+0

@yi_H:搜索引擎不給這麼好的答案爲stockoverlfow一樣。 – hakre

+0

並且在一般的計算器中並不教你如何單獨解決問題 –

回答

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

謝謝Dogbert,你能教我爲什麼我們使用這個:'$ array = $ matches [1];'?我正在閱讀有關preg_match_all的php.net文檔,但我無法理解。 – Eray

+0

正則表達式使用捕獲組「(。+?)」,所以在這種情況下,$ matches [0]包含完整的匹配字符串'{first}'和'{second}','$ matches [1] '包含第一個捕獲組的匹配項。嘗試做'var_dump($ matches)',你會更好理解。 – Dogbert

+0

第一組 - >'{第一}',第二組 - >'第一'現在我明白了。謝謝 ! – Eray

相關問題