2015-05-28 143 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/');