2014-05-21 69 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

谢谢。我不知道贪婪和不贪婪的表情。 –