我需要一个正则表达式来检测字符串中的文件名 - 看看它是以.pdf还是.PDF结尾 - 不区分大小写。甚至应该匹配.Pdf或pdf的任何变体,以防用户使用凌乱的文件名。
这将在PHP 5中使用。我知道我可以制作一堆行来测试每个案例,但我确信有一个更优雅的方法来做到这一点。
答案 0 :(得分:9)
正则表达式没有任何问题,但还有ready-made function用于剖析路径并从中提取扩展名:
echo pathinfo("/path/to/myfile.txt", PATHINFO_EXTENSION); //.txt
答案 1 :(得分:0)
这个怎么样。我不知道你使用的是哪种语言,但这里有一个正则表达式,用于匹配以.pdf结尾的任何内容
.+([.][Pp][Dd][Ff]){1}
我的坏。我半睡半醒。这是PHP。 不知道PHP,但正则表达式应该工作
答案 2 :(得分:0)
另一种可能性是延长
strtolower(pathinfo("/path/file.pDf", PATHINFO_EXTENSION)) == ".pdf"
答案 3 :(得分:0)
正如其他人所说,提取扩展名会有效,否则你可以做这样的事情。
preg_match('/.*\.pdf/i', "match_me.pDf", $matches);
答案 4 :(得分:0)
如果您的字符串由单个文件名组成,则这是一个简单的正则表达式解决方案:
if (preg_match('/\.pdf$/i', $filename)) {
// Its a PDF file
}