我有这样的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])]+
将匹配除(
、[
、/
、I
、M
、G
、]
、)
以外的任何字符
正则表达式101演示
(?<=[img])
是一个积极的回头看,并确保您的比赛在它之前有[img]
(?=[/img])
是一个积极的展望,可以确保您的比赛在它之后[/img]
。这些不计为匹配项,因此不会在捕获组中返回。