回答
相關規範可以rfc 3986被發現和包括所有可能的URL組成部分採用正規的語法定義。但是,爲了您的目的,這些可能會過於籠統。在HTTP(S)協議下稍微稠表達僅匹配的URL會是
http[s]?://(([[:alpha:][:digit:]-._~!$&'\(\)*+,;=]|%([0-9A-F]{2}))+|([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]))(:[0-9]+)?(/([[:alpha:][:digit:]-._~!$&'\(\)*+,;=]|%([0-9A-F]{2}))*)+(\?([[:alpha:][:digit:]-._~!$&'\(\)*+,;=/?]|%([0-9A-F]{2}))+)?(#([[:alpha:][:digit:]-._~!$&'\(\)*+,;=/?]|%([0-9A-F]{2}))+)?
該情況下可以簡化爲
http[s]?://(([^/:\.[:space:]]+(\.[^/:\.[:space:]]+)*)|([0-9](\.[0-9]{3})))(:[0-9]+)?((/[^?#[:space:]]+)(\?[^#[:space:]]+)?(\#.+)?)?
可以確信有關的正確語法url組件。
注意,您可能希望更嚴格的模式如用於全文搜索並僅允許iana註冊的頂級域名。
希望它能幫助,
最好的問候,卡斯滕
如果存在斜線,則此正則表達式不匹配。你如何擴展它以匹配即使是後面的斜線? – yayitswei 2017-05-15 18:18:46
- 1. C#入口驗證正則表達式
- 2. 正則表達式:是否可以使用一個正則表達式驗證端口和端口範圍?
- 3. 正則表達式驗證
- 4. 正則表達式驗證
- 5. 正則表達式驗證
- 6. 正則表達式驗證
- 7. 正則表達式驗證
- 8. 正則表達式驗證
- 9. 驗證日期與正則表達式
- 10. slickgrid驗證列與正則表達式
- 11. 驗證密碼與正則表達式
- 12. 問題與正則表達式驗證
- 13. 郵件驗證與正則表達式
- 14. XML驗證與正則表達式
- 15. Laravel 5.4 - 驗證與正則表達式
- 16. 正則表達式驗證與radautocompletebox
- 17. 與原型正則表達式驗證?
- 18. C#正則表達式端口驗證49152至65535
- 19. 正則表達式:使用端口號驗證URL
- 20. 正則表達式來驗證域名的端口
- 21. C#正則表達式驗證驗證
- 22. 正則表達式驗證程序:客戶端驗證
- 23. Asp.net正則表達式驗證器 - 驗證表達式
- 24. ASP.Net正則表達式(%符號)正則表達式驗證器
- 25. 正則表達式驗證的正則表達式
- 26. ASP.net WebForms正則表達式驗證控件,驗證表達式與「和」
- 27. 正則表達式不正確驗證
- 28. 正則表達式模式驗證Angularjs2
- 29. 正則表達式驗證XML模式
- 30. 正則表達式驗證格式(ABC_123)
你有什麼這麼遠嗎? – 2011-06-12 10:29:17
*什麼*你想使用用正則表達式來驗證網址嗎? – Gumbo 2011-06-12 10:38:32
你怎麼能指望一個正則表達式來驗證URL?你會不會更好地嘗試*訪問*看看你是否得到[2xx](http://en.wikipedia.org/wiki/List_of_HTTP_status_codes#2xx_Success)? – Johnsyweb 2011-06-12 11:00:27