glob 函数中的正则表达式模式

2024-01-03

我在函数中收到了一个文件名。我想从其他目录返回与此文件(按文件名)类似的所有文件。我写了这个:

    $thumbDir = $this->files_path.'thumbs/';
    $toglob = $thumbDir.pathinfo($name, PATHINFO_FILENAME ).'_[0-9]+\x[0-9]+_thb.'.pathinfo($name, PATHINFO_EXTENSION);
    foreach (glob($toglob) as $key => $value) {
        echo $value;
    }

但这不起作用。我搜索文件名是:

oldFileName_[one or more digits]x[one or more digits]_thb.oldFileNameExtension

如果有人帮助我,我将非常感激:)


glob() http://www.php.net/manual/en/function.glob.php确实是一个准正则表达式引擎。从对文档的评论来看,它允许? and a *:

glob 使用两个特殊符号,其作用类似于元字符和量词之间的混合。这两个字符是 * 和 ?

这 ?匹配除 / 之外的任何字符 1

* 匹配 0 个或多个除 / 之外的任何字符

如果有帮助,请将 * 视为 .* 和 ? 的 PCRE 等价物。作为点 (.) 的 PCRE 等价物

这意味着你不能使用你的表达_[0-9]+\x[0-9]+_thb. in glob()。相反,您可以查看整个目录并查看它是否与preg_match() https://www.php.net/preg_match:

$glob = glob('/path/to/dir/*');
foreach($glob as $file) {
    if(preg_match('/_\d+x\d+_thb\./', $file)) {
        // Valid match
        echo $file;
    }
}

意识到在glob(/path/to/dir/*);, the *不匹配/所以这不会在子目录中获取任何文件。它只会循环遍历该路径中的每个文件和目录;如果你想更深入,你将不得不做一个递归函数。

注意我清理了你的表达 http://regex101.com/r/cU9eV4:

_\d+x\d+_thb\.

\d大致等于[0-9](还包括阿拉伯数字字符等),不需要转义x (so no \x),并且您想逃避句点 (\.).

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

glob 函数中的正则表达式模式 的相关文章

  • 如何在收到电子邮件时实时解析电子邮件

    我需要构建一个电子邮件解析脚本 该脚本将解析进入收件箱的电子邮件并将内容转储到数据库中 同时发出包含从电子邮件解析的详细信息的curl 请求 目前 我非常专注于实现如何在收件箱中收到电子邮件时实时解析电子邮件的部分 有没有办法设置触发器来执
  • PHP 数组 - 如何将数组转换为对象? [复制]

    这个问题在这里已经有答案了 我对 PHP 还很陌生 所以请耐心等待 所以我收到这个错误 注意 尝试在此行获取非对象的属性 echo tr td row gt last name td td row gt first name td td r
  • 将嵌套数组中的“点符号”键扩展到子数组

    我从某个任意深度的嵌套数组开始 在该数组中 一些键是一系列由点分隔的标记 例如 billingAddress street 或 foo bar baz 我想将这些键控元素扩展到数组 因此结果是一个嵌套数组 其中所有这些键都已扩展 例如 bi
  • Vim 搜索模式,如果出现则删除到行尾

    我正在尝试在文本文件中搜索特定模式 如果出现这种模式 则意味着该行的其余部分不需要 因此可以删除 我尝试过使用以下命令 但到目前为止还没有成功 s pattern d g pattern d 如果有人有任何建议 他们将不胜感激 would
  • Codeigniter 滚动分页

    我正在使用 jquery 插件滚动分页在 codeigniter 中 我面临的问题是我的循环不会终止 并且也无法给出准确的结果 这是我的html code div div div class image box style margin l
  • 在 PHP 中,有人可以解释克隆与指针引用吗?

    首先 我了解编程和对象 但以下内容对我来说 PHP 没有多大意义 在 PHP 中 我们使用 运算符来检索对变量的引用 我将引用理解为用不同变量引用相同 事物 的一种方式 如果我说例如 b 1 a b a 3 echo b 将输出 3 因为对
  • php 中的 cpu_get_usage ?

    我创建了一个基准类 允许用户插入例如 timer gt checkpoint 1 检查一些代码的时间 内存消耗等 如果她 他想测试它 她 他必须在代码末尾插入 result timer gt result 这会向公共函数 result 提供
  • 通过 PayPal REST API 示例获得折扣?

    PayPal GURUS 我需要帮助 如何插入折扣 我使用 REST API 可能是某个 可以显示代码示例吗 有什么方法可以使用 PHP REST API 发送折扣金额吗 目前 REST 支付 API 不支持折扣 您最好的选择是计算您端的折
  • 最好的 php DOM 2 数组函数是什么?

    我想解析xml文件 到目前为止 我发现最好的方法是使用 DOMDocument 类 示例 xml 字符串
  • 如何将选择下拉列表转换为多个复选框?

    我想将下面的下拉代码转换为多选复选框值 我正在使用 WordPress 下面的代码来自第三方网站 我无权访问该第三方网站 因此 通过此功能 我可以在下拉菜单中提供多选选项 div class facilities span class la
  • 通过CompilerPass注册自定义AttributeBag

    我正在尝试通过将自定义 AttributBags 集成到会话中来整理我的会话变量 在 Symfony 查看相关问题 如何向 symfony 会话添加额外的包 https stackoverflow com questions 4472361
  • Laravel 保存文件将其发布为 bin 文件

    我试图在 laravel 中保存文件 但它最终被保存为 bin 文件 file request gt file file name Carbon now gt format Y m d strtotime Carbon now file g
  • Windows 8.1 升级后 Apache 无法工作 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 今天从 Windows 8 升级到 Windows 8 1 后 Apache 不再工作 我上次从 Windows 7 升级到 Window
  • SSL 和会话劫持/固定

    快问 SSL 是否完全防止会话劫持 固定 谢谢 不可以 例如 在以下情况下可能会发生劫持 被黑客入侵的 CA 根签署无效证书 该证书可用于发起中间人攻击 被黑客攻击的域名所有者电子邮件收件箱使黑客有可能购买经过域名验证的证书 错误的密钥策略
  • 无法创建可锁定文件 - Laravel 8 和 PHP 8

    我被困在 Laravel 项目中 我已经使用 Laravel 很多年了 但从未发生过这种情况 我正在使用 Vagrant 一如既往 并且只在 PHP 8 中发生这种情况 使用 php 7 X 的其他项目不会发生这种情况 USER 和 GRO
  • 有人能给我一个 1 到 5 之间数字的正则表达式吗

    有人能给我一个 1 到 5 之间的单个数字的正则表达式吗 例如输入必须是 1 到 5 之间的数字 55 或 23 不匹配 尝试使用anchors http www regular expressions info anchors html
  • PHP 在数组内循环

    我怎样才能在一个内部循环array在我的代码中 这是我的脚本的静态版本 val array array value gt Male label gt Male array value gt Female label gt Femal my
  • PHP 根据需要添加额外的空格

    考虑以下代码 div div search php and category php本质上是相同的结构 具有一些特定内容的 div 容器 这里没什么特别的 纯 HTML div class component div 但是 当插入时requ
  • 危险的 PHP 函数

    我将用户输入的 php 函数存储到 mySQL 数据库中 这些函数需要能够被执行 正如我们所知 这可以并且将会允许黑客先生将一个漂亮的网站变成瑞士奶酪 这些函数很简单 不需要任何高级的 php 编码 它们更多地涉及处理单个数据数组 因此 如
  • php strtotime“上周一”如果今天是周一?

    我想用strtotime last Monday 问题是 如果今天是星期一 它会返回什么 它似乎正在返回上周星期一的日期 在这种情况下我怎样才能让它返回今天的日期 如果您阅读手册 其中有一个很好的示例 它准确地描述了您想要执行的操作http

随机推荐

  • 在 C++ 中将函数模板作为参数传递

    例如 我想从两个序列中获取最大值列表 left and right 并将结果保存在max seq 它们都是先前定义和分配的 std transform left begin left end right begin max seq begi
  • “py.test”与“pytest”命令

    The py test在我的例子中 命令失败了 而pytest运行完全正常 我使用 pytest flask 插件 platform linux Python 3 5 2 pytest 3 0 2 py 1 4 31 pluggy 0 3
  • JavaFX TableView 通过单击和自动插入行进行编辑?

    我在程序中使用了 tableview 来显示几行 这很好 我的程序用于会计 正如你所知 其中插入了大量数据 我使用了表视图 但我遇到了很多问题 问题 1 当用户想要修改值时 他将双击以编辑单元格 我希望我的用户选择任何行并开始输入 问题2
  • 如何检查MySQL中是否存在某行? (即检查 MySQL 中是否存在用户名或电子邮件)

    我需要帮助检查数据库中是否存在行 就我而言 该行包含一个电子邮件地址 我得到结果 email no longer exists email protected cdn cgi l email protection 这是我当前使用的代码 if
  • 如何在 iPhone 的 Objective-C 中本地播放视频?

    我想通过将视频存储在应用程序中来在 iPhone 上本地播放视频 我能怎么做 NSString path NSBundle mainBundle pathForResource myVideo ofType mp4 MPMoviePlaye
  • Cypress - 从 json 响应正文获取值

    我正在使用 Cypress 进行一些 API 测试 但我很难访问 JSON 响应正文中的值 但是我可以对身体进行断言 表明它正确接收了它 下面我尝试分配 JSON 主体 response body 然后从中获取 id 的值 describe
  • Excel 文件的 DictReader

    我有一个当前保存为 csv 的文件 但它最初是一个 Excel 文件 Excel 2010 其内容是这样的 Name Category Address McFood Fast Food Street 1 BurgerEmperor Fast
  • 限制网络请求

    我想执行一堆 WebRequest 但设置了可以同时启动的阈值 我遇到了这个LimitedConcurrencyTaskScheduler 示例 https msdn microsoft com en us library system t
  • WPF 数据网格文本省略号不起作用

    我有一个专栏 里面有很长的用户评论 我使用以下代码加载它
  • TabItem 绑定 WPF

    我刚刚学习 WPF 我需要一些帮助 我有一个使用 TabControl 并动态生成新选项卡的应用程序 在每个选项卡上我有一个 TextBox 现在我想向工具栏添加一个撤消按钮 该工具栏不是选项卡的一部分 类似 VisualStudio 撤消
  • 在 Groovy 中将地图与递归嵌套地图合并

    我想知道是否有人有一种简单的方法将 2 个深层嵌套地图合并在一起 例如 我想得到 a 1 animals cat blue b 2 animals dog red a 1 b 2 animals cat blue dog red 有人有简单
  • 合并重叠的数字范围

    我需要将重叠的数字范围合并为单个范围 所以我有一个包含子列表的列表 例如 83 77 103 97 82 76 101 95 78 72 97 91 72 66 89 83 63 57 78 72 53 47 65 59 41 35 50
  • Cipher 是线程安全的吗?

    很简单 一个实例可以javax crypto Cipher e g Cipher getInstance RSA 可以从多个线程中使用 或者我是否需要将多个线程粘在一个线程中ThreadLocal 就我而言 不 不是 该实例是有状态的 因此
  • 用于二维数组的 ASP.NET MVC 5 编辑器

    我有一个包含二维数组的模型 public class Matrix public ValidInt Data Range 0 8 ErrorMessage public int Width get set Range 0 8 ErrorMe
  • 宏操作符列表

    我知道宏的字符串化运算符 并且我最近了解到 连接运算符 带有字符串文字前缀的预处理器字符串化运算符 https stackoverflow com questions 29850088 preprocessor stringizing op
  • 我可以在垫子扩展行内显示另一个表格吗?

    我有一张带扩展行的垫子桌 如果我单击一行 它会展开并显示硬编码字符串 我想在展开的行内显示另一个表格 是否可以 或者 是否有任何其他技术或方法来实现我想要做的事情 我正在尝试显示给定时间段内已执行作业的列表 在主行上 我只想显示类似 01
  • 在 Spring Boot 中的 application.properties 中使用 Maven 属性

    我正在尝试将 pom xml 中的属性加载到 application properties 中 我想创建两个配置文件 dev 和 prod 以使用不同的数据库 url 我使用 Jenkins 作为 CI 在我的所有应用程序 主要是 Spri
  • 获取直线与多边形相交点的坐标

    我想找到一条线与多边形相交的点 我使用凹轮廓计算获得了这个多边形thread https stackoverflow com questions 57260352 python concave hull polygon of a set o
  • 在 C# 中使用 BitmapData 和指针快速修改位图

    我正在从某些相机捕获数据 原始数据数组 然后我根据调色板将此数据映射到 RGB 值 我需要尽快绘制它 所以我使用BitmapDdata并使用指针编辑不安全代码段中的像素 public void dataAcquired int data B
  • glob 函数中的正则表达式模式

    我在函数中收到了一个文件名 我想从其他目录返回与此文件 按文件名 类似的所有文件 我写了这个 thumbDir this gt files path thumbs toglob thumbDir pathinfo name PATHINFO