0

長い文字列があり、その前にあるすべての単語を取得したい.png

たとえば、私は持っています:

blablabla /name01.png blablabla /name_may_have_different_sizes02.png blablabla

name01.pngそして、とで配列を取得したいname_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

regexp と PHP preg_match_all関数 ( http://us2.php.net/manual/ru/function.preg-match-all.php )を使用する必要があります。

そして正規表現パターン: #/(.*?).png#

必要に応じて機能します。Online RegEx Tester で 確認してください: ここで例を確認してください。

于 2013-11-09T16:54:45.003 に答える