如何从bbcode中提取完整的图像



我有这样的BBCode。

[IMG]art_74e7e4f8811380426577.jpeg[/IMG] [IMG]art_74e7e4f8811380426595.jpeg[TITLE]title is always needy[/TITLE][/IMG]

我需要提取两个图像。所以我preg_match_all是:

preg_match_all('/[IMG][^([/IMG])]+/', $body, $matches);

这给了我这个:

[0] => [IMG]art_74e7e4f8811380426577.jpeg
[1] => [IMG]art_74e7e4f8811380426595.jpeg

我需要将标题标签包含在第二次出现中。真的卡住了...

也使用它来获取图像标签:

preg_match_all('~[img].*?[/img]~i', $body, $matches);

正则表达式101演示

i修饰符用于不区分大小写的匹配。

如果您不想获取图片标签,请使用环顾四周:

preg_match_all('~(?<=[img]).*?(?=[/img])~i', $body, $matches);

顺便说一下:[^([/IMG])]+将匹配除([/IMG])以外的任何字符

正则表达式101演示

(?<=[img])是一个积极的回头看,并确保您的比赛在它之前有[img]

(?=[/img])是一个积极的展望,可以确保您的比赛在它之后[/img]。这些不计为匹配项,因此不会在捕获组中返回。

最新更新