0

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

例如我有:

blablabla /name01.png blablabla /name_may_have_different_sizes02.png blablabla

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

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

4

3 回答 3

3

使用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

于 2013-11-09T16:56:34.710 回答
0

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

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

完毕!

于 2013-11-09T16:57:35.903 回答
-1

You should use regexp and in PHP preg_match_all function (http://us2.php.net/manual/ru/function.preg-match-all.php)

And regexp pattern: #/(.*?).png#

It works as you need, check in Online RegEx Tester: Check your example here

于 2013-11-09T16:54:45.003 回答