簡體   English   中英

正則表達式以檢測文件擴展名

[英]Regular Expression to detect a file extension

我需要一個正則表達式來檢測字符串中的文件名 - 看它是以.pdf還是.PDF結尾 - 不區分大小寫。 甚至應該匹配.Pdf或pdf的任何變體,以防用戶使用凌亂的文件名。

這將在PHP 5中使用。我知道我可以制作一堆行來測試每個案例,但我確信有一個更優雅的方法來做到這一點。

正則表達式沒有任何問題,但是還有一個現成的函數用於剖析路徑並從中提取擴展:

echo pathinfo("/path/to/myfile.txt", PATHINFO_EXTENSION); //.txt

這個怎么樣。 我不知道你使用的是哪種語言,但這里有一個正則表達式,用於匹配以.pdf結尾的任何內容

.+([.][Pp][Dd][Ff]){1}

我的錯。 我半睡半醒。 這是PHP。 不知道PHP,但正則表達式應該工作

另一種可能性是延長

strtolower(pathinfo("/path/file.pDf", PATHINFO_EXTENSION)) == ".pdf"

正如其他人所說,提取擴展名會有效,否則你可以做這樣的事情。

preg_match('/.*\\.pdf/i', "match_me.pDf", $matches);

如果您的字符串由單個文件名組成,則這是一個簡單的正則表達式解決方案:

if (preg_match('/\.pdf$/i', $filename)) {
   // Its a PDF file
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM