搜索字符串并将其后面的单词返回到数组中


Search for a string and return the word behind it into an array

我有一个很长的字符串,我想检索.png之前的所有单词

例如,我有:

blablabla /name01.png blablabla /name_may_have_different_sizes02.png blablabla

我想得到一个带有name01.pngname_may_have_different_sizes02.png的数组

有些图像的路径类似于/folder1/folder2/image.png 我还想只取文件名而不是整个路径。

使用preg_match_all

preg_match_all('#/(([^/ ]*)'.png)#', $string, $matches);
print_r($matches[1]); // with extension
print_r($matches[2]); // without extension

指纹:

Array ( [0] => name01.png [1] => name_may_have_different_sizes02.png )
Array ( [0] => name01 [1] => name_may_have_different_sizes02 )

解释:

#/(([^/ ]*)'.png)# 是一种模式,搜索以 / 开头的字符串,后跟任何字符 - 空格和 / 除外。最后必须.png

你最好不要使用正则表达式,正如其他人所建议的那样。

$input = "blablabla /name01.png ......";
$parts = explode(" ",$input);
$files = array_filter($parts,function($word) {return substr($word,-4) == ".png";});

做!

你应该使用正则表达式和PHP中的preg_match_all函数(http://us2.php.net/manual/ru/function.preg-match-all.php)

和正则表达式模式:#/(.*?巴布亚新几内亚#

它可以根据您的需要工作,签入在线正则表达式测试器:在此处查看您的示例