2013-10-20 104 views
1

我做了一個正則表達式匹配一些網址:URL分析正則表達式

它必須匹配:協議(HTTP,HTTPS),用戶名(用戶名@ --IF有的話)的passord(用戶名:密碼@ - 如果有),主機名(asdf.asdf(etc)或123.154.213.255)端口(:80 - 如果有的話)和路徑(以反斜槓開始,則它遵循/或。之間的任意組合或任何字母或數字)

我正則表達式至今:

\b(https?)://([a-z]*[email protected]|[a-z]*?:[a-z]*[email protected])?((([01][0-9][0-9]|2[0-4][0-9]|25[0-5]|[0-9]|[1-9][0-9])\.([01][0-9][0-9]|2[0-4][0-9]|25[0-5]|[0-9]|[1-9][0-9])\.([01][0-9][0-9]|2[0-4][0-9]|25[0-5]|[0-9]|[1-9][0-9])\.([01][0-9][0-9]|2[0-4][0-9]|25[0-5]|[0-9]|[1-9][0-9]))|([a-z]*\.?)*[a-z])(:[0-9]*)? 

它有點難以閱讀。 我的問題是找到路徑....直到現在我已經嘗試(/?)找到第一個(可能)/然後我試圖(/?/|\.|[a-z]|[0-9]*)匹配任何/或。或者[a-z0-9],但是很多時候都可以,但它不起作用。

+0

不要忘了IPv6的addressess(如通過'http:// [:: 1]:80 /') – Erbureth

+0

我只是在尋找我在我的問題描述,而不是實際的真實的URL網址的特定類型 – Thanatos

+0

你使用什麼語言? – VladL

回答

0

我找到了正確的正則表達式!

它使用,如果我發現/然後我搜索a thru z0 - 9/,上面寫着一個條件,. apearing無論多少次。

((?(?=/)([a-z0-9]|/|\.)*|))