2014-05-21 70 views
0

我有以下字符串:匹配重複模式

新規登録 <small>{intro.free}</small> {intro.slogan} 

在PHP中,我嘗試使用下面的代碼:

preg_match_all("/\{(.*)\}/u", $input_lines, $output_array); 

這給了我以下結果:

Array 
(
    [0] => Array 
     (
      [0] => {free})</small> {intro.slogan} 
     ) 

    [1] => Array 
     (
      [0] => free})</small> {intro.slogan 
     ) 

) 

我的困境是我試圖得到以下結果:

Array 
(
    [0] => intro.free 
    [1] => intro.slogan 
) 

我無望。有人有什麼主意嗎? 我正在使用{}作爲包裝。我試圖在每次出現之間獲取文本。

回答

2

讓你的正則表達式不貪婪,它會工作:

preg_match_all("/\{(.*?)\}/u", $input_lines, $output_array); 

一個print_r($output_array[1]);yields

Array 
( 
    [0] => intro.free 
    [1] => intro.slogan 
) 
+0

謝謝。我不知道貪婪和不貪婪的表情。 –