獲取URL的一部分(正則表達式) (Getting parts of a URL (Regex))
文章推薦指數: 80 %
問題敘述獲取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 =
延伸文章資訊
- 1URL Regex / 網址正規表示式 - Fooish 程式技術
Regex Examples. Email Regex / Email 正規表示式. /^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/. URL...
- 2正規表示法範例 - 筆記國度
- 3Django學習紀錄5.視圖與URL[附正規表達式的整理] - iT 邦幫忙
不過因為書上的url配置是舊版的django語法,在新版的django中新增了path以及re_path的用法在下層的mysite ... 前面的r代表了這個字串是正規表達式(regular e...
- 4正規表示式Regular Expression - Poy Chang
正規表示式通常被稱為一個模式(pattern),為用來描述或者符合一系列符合某個句法規則的字串,透過他我們可以快速搜尋符合指定模式的文字。
- 5Regular Expression (regex),要成為GA專家一定要懂的正規 ...
學會使用正規表示式,或稱規則運算式(Regular Expression, RegEx) 就很重要了!常見的規則運算式符號在Google的官方指南裡分成萬用字元、錨定文字、其他以及分組, ...