2017-07-14 12 views
0

内のすべてのファイル名を検索PHP:私が埋め込まれたファイル名を持つ文字列の多くのように(ファイル名の単なる一例イスト「ファイル」)を持つ文字列

$string1 = '?file.png#hello/file.pdf<____!.sss<>file.docx'; 
$string2 = '###file.txt#§§/FILE.png(((file.pdf**'; 

のファイル名は、有効なLinuxまたはWindowsのファイル名です。

私は例えば、文字列から配列に(パスなし)すべてのファイル名を抽出する必要があります。:

$first = string2filenames($string1); 
// $first should be [ 'file.png','file.pdf','file.docx' ] 

$seconnd = string2filenames($string1); 
// $seconnd should be [ 'file.txt','FILE.png','file.pdf' ] 

機能string2filenamesを書くためにどのように?

preg_match_all(パターン'/[a-zA-Z0-9-_]+\.[a-zA-Z]{2,4}/')で既に試しましたが、成功しませんでした。

+0

https://regex101.com/r/NesfXO/1は完璧ではないかもしれませんが、あなたのためのスタートです – Andreas

+0

名前は常にファイルですか、それともちょうど偶然でしょうか? – Andreas

+0

@Andreas:これは単なる例示的なファイル名です – WeSee

答えて

1

実際に動作する可能性のあるものが見つかりました。
試してみてください。

これは、ファイル名が複数の点と一致し、例文の文字列に一致し、さらに進んでいると思われます。
preg_match_allをクリックし、[0](完全一致)を見てください。
http://www.phpliveregex.com/p/kK2

$pattern ="/([A-Za-z0-9 _-]+\.)+(\w{3,4})/"; 

編集。 \ wはキャプチャしませんでした_-

関連する問題