獲取URL的一部分(正則表達式) (Getting parts of a URL (Regex))

文章推薦指數: 80 %
投票人數:10人

問題敘述獲取URL的一部分(正則表達式) (Getting parts of a URL (Regex)) 給定URL(單行): http://test.example.com/dir/subdir/file.html 如何使用正則表達式提取以下 ... 問題討論獲取URL的一部分(正則表達式)(GettingpartsofaURL(Regex))問題討論question獲取URL的一部分(正則表達式)(GettingpartsofaURL(Regex))問題敘述獲取URL的一部分(正則表達式)(GettingpartsofaURL(Regex))給定URL(單行):http://test.example.com/dir/subdir/file.html如何使用正則表達式提取以下部分:子域(測試)域(example.com)沒有文件的路徑(/dir/subdir/)文件(file.html)文件的路徑(/dir/subdir/file.html)不含路徑的網址(http://test.example.com)(添加您認為有用的其他任何內容)即使輸入以下URL,該正則表達式也應能正常工作:http://example.example.com/example/example/example.html 參考解法方法1:一個正則表達式來解析和分解一個完整的URL,包括查詢參數和錨例如https://www.google.com/dir/1/2/search.html?arg=0-a&arg1=1-b&arg3-c#hash^((http[s]?|ftp):\/)?\/?([^:\/\s]+)((\/\w+)*\/)([\w\-\.]+[^#?\s]+)(.*)?(#[\w\-]+)?$RexEx職位:網址:RegExp['$&'],協議:RegExp。

$2,主持人:RegExp。

$3,路徑:RegExp。

$4,文件:RegExp。

$6,查詢:RegExp。

$7,hash:RegExp。

$8然後,您可以輕鬆地進一步解析主機(以“。

”分隔)。

我要做的是使用這樣的東西:/*     ^(.*:)//([A-Za-z0-9\-\.]+)(:[0-9]+)?(.*)$ */ proto $1 host $2 port $3 the-rest $4 進一步分析“其餘”盡可能具體。

在一個正則表達式中這樣做有點瘋狂。

方法2:我知道我參加聚會很晚,但是有一種簡單的方法可以讓瀏覽器在不使用正則表達式的情況下為您解析網址:vara=document.createElement('a'); a.href='http://www.example.com:123/foo/bar.html?fox=trot#foo'; ['href','protocol','host','hostname','port','pathname','search','hash'].forEach(function(k){ console.log(k+':',a[k]); }); /*//Output: href:http://www.example.com:123/foo/bar.html?fox=trot#foo protocol:http: host:www.example.com:123 hostname:www.example.com port:123 pathname:/foo/bar.html search:?fox=trot hash:#foo */ 方法3:我參加聚會已經晚了幾年,但令我驚訝的是,沒有人提到統一資源標識符規範中有一個關於使用正則表達式解析URI的部分。

Berners-Lee等人編寫的正則表達式為:^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?  12            3  4          5       6  7        8 9 上面第二行中的數字僅用於增強可讀性;它們指示每個子表達式的參考點(即每個配對括號)。

我們指的是與子表達式匹配的值作為$。

例如,將上面的表達式匹配到http://www.ics.uci.edu/pub/ietf/uri/#Related導致以下子表達式匹配:$1 = http: $2 = http $3 = //www.ics.uci.edu $4 = www.ics.uci.edu $5 = /pub/ietf/uri/ $6 =  $7 =  $8 = #Related $9 = Related 對於它的價值,我發現我必須避免使用JavaScript中的正斜杠:^(([^:\/?#]+):)?(\/\/([^\/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?(bypek、hometoast、Rob、gwg)參考文件GettingpartsofaURL(Regex)(CCBY-SA3.0/4.0)#RegEx#language-agnostic#url留言討論提交送出編輯提交送出編輯提交送出回覆提交送出問題討論歡迎回家×使用Github帳號登入使用Google帳號登入取消免費加入CoderBridge×使用Github帳號註冊使用Google帳號註冊取消



請為這篇文章評分?