2012-09-17 100 views
0

我使用PHP和正则表达式找到正则表达式返回动态字符串:PHP preg_match_all()在

preg_match_all('/\{\{include:[a-zA-Z0-9_]{25}\}\}/i', $content, $include_matches, PREG_PATTERN_ORDER); 

根据PHP文档,$include_matches应该给我原来的字符串,而内侧的结果括号(PREG_PATTERN_ORDER标志),正是我想要的。问题是,结果是:

Array 
(
    [0] => Array 
     (
      [0] => {{include:rec_ih6tk504c23dfdf4a3qqK}} 
     ) 
) 

我想要得到的结果是:

Array 
(
    [0] => Array 
     (
      [0] => rec_ih6tk504c23dfdf4a3qqK 
     ) 
) 

任何想法,我做错了什么?谢谢。

+0

仅供参考,括号 - >'()' – Phil

+0

不要按照你的评论。 – Justin

+0

从你的问题; *“...和括号内的结果...”*。你的表情中没有括号 – Phil

回答

4

只需使用:

preg_match_all('/\{\{include:([a-zA-Z0-9_]{25})\}\}/', $content, $include_matches, PREG_PATTERN_ORDER); 
$include_matches= $include_matches[1]; 

你要插入一个捕获组