正则表达式文件名匹配

时间:2015-05-28 13:57:10

标签: php regex drupal-7

我正在Drupal中编写一个PHP函数来检测重复文件上传并尝试将上传的文件名与之前上传的文件进行比较。

我有以下示例文件:

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

我正在尝试使用以下代码匹配所有这些:

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

但是,我回来的只有 trees-nature.jpg

我希望得到一些修正。

2 个答案:

答案 0 :(得分:2)

你的正则表达式不正确。使用方法:

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

答案 1 :(得分:0)

您可以使用以下内容:

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

校正:

  • [ ]不能用作括号..它在正则表达式中具有特殊含义
  • *在正则表达式中不是通配符..您必须使用.*
  • .这里也有特殊含义(任何角色)你需要逃脱它