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

时间:2022-01-27 19:37:14

Hey people how can I extract an image from text like this:

嘿人们如何从文本中提取图像,如下所示:

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

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

What I did:

我做了什么:

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

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

but it just give the last name for example DanilaCarneiro_capa2.jpg give -> capa2.jpg, i need DanilaCarneiro_capa2.jpg and this [IMG2;DanilaCarneiro_capa2.jpg;D].

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

Is very difficult?

是很困难的?

3 个解决方案

#1


1  

Try this:

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

#2


0  

You might want to escape the square bracket

您可能想要转义方括号

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

#3


0  

You can use this pattern:

你可以使用这种模式:

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

If you want to check the extension:

如果要查看扩展名:

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

#1


1  

Try this:

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

#2


0  

You might want to escape the square bracket

您可能想要转义方括号

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

#3


0  

You can use this pattern:

你可以使用这种模式:

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

If you want to check the extension:

如果要查看扩展名:

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