2015-05-28 226 views
0

我在Drupal中編寫了一個PHP函數來檢測重複的文件上傳並嘗試將上傳的文件名與先前上傳的文件進行比較。正則表達式文件名匹配

我的示例文件,我試圖以匹配所有的人都用下面的代碼

trees-nature_0.jpg 
trees-nature_1.jpg 
trees-nature0.jpg 
trees-nature.jpg 

file_scan_directory('image/uploads', "/trees-nature[*]?.jpg/"); 

然而,所有我得到的回覆是樹木,自然。 jpg

我將不勝感激。

回答

0

您可以使用以下方法:

file_scan_directory('image/uploads', '/trees-nature(.*?)\.jpg/'); 

更正:

  • [ ]不能使用括號..它在正則表達式
  • 特殊含義
  • *在rege中不是通配符X ..你必須使用.*
  • .也具有特殊的意義在這裏(任何字符),你需要逃避它
+0

好多了:'*'代替:?(。*)'' –

+0

?是的..檢查並確認.. –

+0

他們都工作,但爲什麼不使用(。*)?看起來很整潔 - 至少有 – sisko

2

您的正則表達式不正確。使用方法:

file_scan_directory('image/uploads', '/trees-nature.*?\.jpg/');