php - 如果不匹配模式,PHP 7.3 glob 模式返回文件
问题描述
我想返回与路径中的模式不匹配的文件列表,以便我可以删除它们。
文件位于以下目录:
"/var/www/servername/directory/subdir_level1/"
我要保留的文件的名称如下:
"e-Calendar_Test-[date and time here].csv"
它们以 开始"e-Calendar_Test-"
,以 adate in the middle
结束,以".csv"
以下模式符合上述条件:
glob("/var/www/servername/directory/subdir_level1/e-Calendar_Test*.csv")
我想返回不匹配的文件。我尝试了几件事:
"^(?!/var/www/servername/directory/subdir_level1/e-Calendar_Test)*.csv"
"/var/www/servername/directory/subdir_level1/(^(?!e-Calendar_Test))*.csv"
还有一些,但似乎没有什么能返回我想要的。
解决方案
glob
不支持正则表达式。使用glob
模式,只需计算所有文件和与您的模式匹配的文件的差异。您可以*
使用正确的数字?
或日期调整日期:
$result = array_diff(glob("/var/www/servername/directory/subdir_level1/*.csv"),
glob("/var/www/servername/directory/subdir_level1/e-Calendar_Test-*.csv"));
如果您想要所有文件而不考虑扩展名*.csv
,请*.*
在第一个中替换。glob
推荐阅读
- typescript - 为 BelongsToMany 关联续集连接表列名称
- swift - SwiftUI:有些按钮出现,有些不出现 - MacOS 菜单栏应用程序
- node.js - 无法弄清楚如何在 Sequelize.js ORM 中创建表与其自身之间的多对多关系
- flutter - 如何在具有圆形边界的容器内居中图标小部件
- c# - 表单下载数据 OnStart() 或 OnAppearing()
- c# - 如何将 ComboBoxItem 设置为从其中的按钮中选择?
- javascript - 为什么for循环语句在django模板中不起作用
- java - 春季交易流程
- redux-saga - Redux-Saga - 触发取消操作时取消所有其他 saga
- reactjs - 如何向下移动图像以动态为搜索结果腾出空间(React Native)