gpt4 book ai didi

php - 我应该使用什么正则表达式来查找不包含指定字符串的文件名?

转载 作者:搜寻专家 更新时间:2023-10-31 20:57:09 24 4
gpt4 key购买 nike

我正在尝试使用 preg_match 函数创建一个文件夹中的文件列表。但是,我想省略在文件名和扩展名之间包含“_min”字符串的文件。文件名只能由字母数字和下划线字符组成,扩展名只能是 jpg 和 gif。例如:
desc_125f.jpg -> 匹配,
desc#_56.jpg -> 不匹配(包含#),
bla_bla.gif -> 匹配,
bla_bla.png -> 不匹配(扩展名为 png),
desc_125f_min.jpg -> 不匹配(在文件名和扩展名之间包含 _min)
desc_min256.gif -> 匹配(_min 不在文件名和扩展名之间)。
正则表达式模式应该如何?

我试过了:^\w+(?!_min)\.(jpg|gif)$ 但它没有像我预期的那样工作,因为 desc_125f_min.jpg已匹配。

最佳答案

您的正则表达式的问题是 \w+ 吸收了 . 之前的所有字符,因此 _min 的否定前瞻总是成功。您需要将否定前瞻移动到正则表达式的开头:

^(?!.*_min\.)\w+\.(jpg|gif)$

Demo on regex101

关于php - 我应该使用什么正则表达式来查找不包含指定字符串的文件名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55758884/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com