如何使用preg_match_all从文本中提取一些图像

时间:2013-09-04 19:39:38

标签: php regex string preg-match-all

嘿,人们怎样才能从这样的文字中提取图像:

bla bla bla bl [IMG2;DanilaCarneiro_capa2.jpg;D], bla bla bla , [IMG2;abcsd.jpg;E], bla bla

我做了什么:

preg_match_all('![IMG2;[a-z0-9\-\.\/]+\.(?:jpeg|png|gif)!Ui' , $value->CORPO , $matches);

但它只是给出了例如DanilaCarneiro_capa2.jpg给出的姓氏 - >> capa2.jpg,我需要 DanilaCarneiro_capa2.jpg[IMG2;DanilaCarneiro_capa2.jpg;D]

很难吗?

3 个答案:

答案 0 :(得分:1)

试试这个:

preg_match_all('!\[IMG2;(.*?(?:jpg|png|gif))!i', $value->CORPO , $matches);

答案 1 :(得分:0)

您可以使用此模式:

$pattern = '~\[IMG2;\K[^];]++~i';
preg_match_all($pattern, $value->CORPO, $matches);

如果您想查看扩展程序:

$pattern = '~\[IMG2;\K[^];]+\.(?:jpeg|png|gif)(?=[];])~i';

答案 2 :(得分:0)

您可能想要转义方括号

 \[IMG2;[a-z0-9\-./]+\.(?:jpeg|png|gif)