预匹配文件名与连字符
Posted
技术标签:
【中文标题】预匹配文件名与连字符【英文标题】:Preg-match filenames with hypens 【发布时间】:2014-10-11 12:59:06 【问题描述】:如何在 php 中使用 preg_match 检查文件名?
文件名 = 2.pdf
如果另一个文件被称为2-2.pdf
或2-3.pdf
,它也应该匹配。
这是hypen之前的Id。它不需要检查.pdf
文件扩展名。
$id = 2;
$list = scandir("D:/uploads/");
$list = preg_grep("/^".$id."$/", $list);
foreach ($list as $file)
echo $file . "<br />";
【问题讨论】:
【参考方案1】:怎么样:
/^$id(?:-\d+)?/
说明:
/ : delimiter
^ : begining of strig
$id : the id defined earlier
(?: : begining of non capture group
_ : a dash
\d+ : one or more digits
)? : end of group, optional
/ : delimiter
用法:
$list = preg_grep("/^$id(?:-\d+)?/", $list);
【讨论】:
【参考方案2】:使用这个正则表达式
/^2[-.]/
演示:http://regex101.com/r/aJ7cK0/1
【讨论】:
以上是关于预匹配文件名与连字符的主要内容,如果未能解决你的问题,请参考以下文章