我有一个名为:
的文件'SomePrefix _ ?????。JPG'
我试图在'SomePrefix_'字符串后删除部分文件名。
我知道前缀部分,但不知道其余部分。 如何从文件名中删除'SomePrefix_'之后的任何字符?
我也试着找到文件名:
$files = preg_grep('~^SomePrefix_' , scandir("/home/mydomain/public_html/wordpress/wp-content/uploads/2018/02/"));
但什么也没有回复。
如何删除基于文件名的前缀的末尾部分?
更新
预期产出:
假设我在服务器中有'SomePrefix_ copy(3)326 s.jpg'。
我想找到这个文件并将其重命名为'SomePrefix_.jpg'
答案 0 :(得分:1)
您可以使用preg_filter
解决方案:
$result = preg_filter('~^(SomePrefix_).*(\.jpe?g)$~', '$1$2', $files);
它只会返回匹配发生的已更改文件名。
请参阅regex demo。
模式详情
^
- 字符串开头(SomePrefix_)
- 第1组将前缀捕获为文字文本.*
- 除了换行符之外的任何0 +字符,尽可能多(\.jpe?g)
- 第2组:.jpeg
或.jpg
$
- 字符串结束。