正確匹配URL的正則表達式


原文:https://www.itdaan.com/blog/2016/01/04/405f514a3babd1ed7dc29965811636a4.html

 

網上流傳着多種匹配URL的正則表達式版本,但我經過試驗,最好用的還是從stackoverflow上查到的:

(https?|ftp|file)://[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|]

IP地址、前后有漢字、帶參數的,都是OK的。

image

 

另外幾個有問題的版本:

摘自微軟MSDN:

(ht|f)tp(s?)\:\/\/[0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*(:(0-9)*)*(\/?)([a-zA-Z0-9\-\.\?\,\'\/\\\+&%\$#_]*)?

帶參數的匹配有問題。

image

百度知道中有人回答的

http://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?

有嚴重的漢字問題。

image

 

另外,如果只是想匹配URL中的域名部分,則可以用這個:

((([A-Za-z]{3,9}:(?:\/\/)?)(?:[-;:&=\+\$,\w]+@)?[A-Za-z0-9.-]+(:[0-9]+)?|(?:ww‌​w.|[-;:&=\+\$,\w]+@)[A-Za-z0-9.-]+)((?:\/[\+~%\/.\w-_]*)?\??(?:[-\+=&;%@.\w_]*)#?‌​(?:[\w]*))?)

image

 

 

看不懂正則表達式?用regulex試試,可以把正則表達式可視化!

參考:精通正則表達式的 12 個有用資源


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM