正则表达式文件名匹配

Regular expression filename matching

我正在 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.

请多多指正。

您的正则表达式不正确。使用:

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

您可以使用以下内容:

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

Correction:

  • [ ] 不能用作括号.. 它在正则表达式中有特殊含义
  • * 不是正则表达式中的通配符。您必须使用 .*
  • .这里也有特殊含义(任意字符)需要转义