2012-04-19 80 views
1

我原本有这preg_match_all模式的HTML img标记,但我如何找到一个bbcode的第一次出现?抓取第一次出现的bbcode

$output = preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $content, $matches);

[img]http://path/to/img.png[/img]

它应该会返回[img]的bbcode的内容

回答

1

试试这个:

\[img\]([^\[\]\'"]+)\[\/img\] 

演示:

http://regexr.com?30mks

+0

我可以知道为什么你的answrs是不同的。 – Michelle 2012-04-19 04:38:34

+0

@JackSpairow Michael的''[^ \ [] +'试图通过不允许'['s进入''[s]''''['img]'和'[/ img]'之间的内容。而我的,做同样的事情,而不允许:'''s,''''''''(单引号)和'''(双引号)。另外,我也在' img]'标记在一个组中,这样你就可以随心所欲地做任何事情;只需要检索它?替换它?任何... ;-) – 2012-04-19 04:43:42

2

这应做到:

\[img\][^\[]+\[\/img\]