我需要一個正則表達式檢測是否給定的字符串是一個URL到[潛力]文件即
/file.pdf
http://www.whatever.com/file.docx
。 ./file.longfileextension
謝謝你們正則表達式來檢測的網址,其中最後「段」包含一段
0
A
回答
0
這個表達式可以完成這項工作。
^.*/(?<filename>[^/]+?\.[^/]+)$
^ Anchor to the begining of the string .* Any character zero or more times / Slash (?<filename> Named group 'filename' [^/]+? Not a slash at least once and captured lazily \. One file extension separator (dot) [^/]+ Not a slash at leats once ) End of named group $ Anchor to the end of the string
2
你可能會檢查結束,看它是否看起來像一個文件擴展名,但URL並不實際映射到文件;如果URL被重寫了怎麼辦?
如果你想確定哪些特定URL解析爲,您可以發出一個HEAD
請求,並檢查content-type
和content-disposition
頭,看內容是暗含的基礎文件,但即使這不是防彈的類型,因爲圖像,PDF等都可以動態生成。
1
你不能。
E.g. http://example.com/files/readme
可能是一個文本文件或文件夾(* nix風格的操作系統通常不會添加.txt
擴展名)。
即使有文件擴展名,也可能沒有文件,服務器端代碼處理創建內容的URL(例如ASP.NET HttpHandler)。
你爲什麼要這麼做?如果你想檢測URL是否會返回一個文件,你可以用擴展名猜測(記住應用程序可以自由創建它們),但唯一真正的方法是執行HTTP HEAD請求並檢查返回的內容類型(但是你又遇到了什麼是有效的文件MIME類型的問題)。
相關問題
- 1. 正則表達式來檢查在最後一段
- 2. 正則表達式來檢測包含重量的括號
- 3. 如何使用正則表達式匹配包含多個網址的行中的最後一個網址?
- 4. 修改正則表達式來檢測網址
- 5. 正則表達式來之前@檢測的電子郵件地址段
- 6. 正則表達式 - 從網址中刪除最後一個字
- 7. 正則表達式的網址檢查
- 8. JavaScript網址正則表達式來檢查正則表達式與URL
- 9. 正則表達式包含一個字段
- 10. 正則表達式來驗證字段:字段數據不應包含括號
- 11. 正則表達式網址檢查
- 12. 如何獲得正則表達式的最後一段?
- 13. 正則表達式來過濾網址?
- 14. 正則表達式來linkify網址
- 15. 正則表達式來清理網址
- 16. 正則表達式來驗證網址?
- 17. 正則表達式來排除其中包含的Java
- 18. 正則表達式「包含」另一個正則表達式
- 19. 正則表達式來檢測與浮點數或N的最後一行/一
- 20. 正則表達式的網址不包含在標籤
- 21. 不要得到的網址包含:「togl」[正則表達式]
- 22. 正則表達式匹配最後一段標記和內容
- 23. 正則表達式來提取段落
- 24. 正則表達式先行與可選片段的網址
- 25. 檢測網站地址/正則表達式的方法?
- 26. PHP的正則表達式最後一個地址的網址鏈接
- 27. PHP自動檢測translatables /檢測一段代碼正則表達式
- 28. 正則表達式,按特定順序匹配網址片段?
- 29. 選擇字段,其中字段正則表達式組由
- 30. 正則表達式查找包含從段落
我需要檢測,如果用戶輸入URL被鏈接到文件系統或不上的一種嘗試。 – 2009-06-04 10:43:12
@Adam:展開。 – Richard 2009-06-04 11:05:06