【发布时间】:2012-08-30 01:33:53
【问题描述】:
$pattern = '#\[img (([^="\]]+)="([^"]+)" ?)+\]#';
preg_match_all($pattern,$blog,$matches,PREG_PATTERN_ORDER);
[img size="preview" click="http://text.com" align="right" src="pic:3378f.jpg"]
顶部的代码与上面的 BBCode 标签匹配,但只返回最后一个属性,当它应该根据我的正则表达式中的子模式返回所有时。有什么关系?
【问题讨论】:
-
当您像上面的
()+那样执行捕获组量词时,仅捕获最后一次迭代(在您的情况下为src属性)。基本上你是Repeating a Capturing Group instead of Capturing a Repeated Group