正則表達(dá)式拆分url實(shí)例代碼
背景
做web開發(fā)的同學(xué),經(jīng)常會(huì)有從url中獲取二級(jí)域名或者主域名或者參數(shù)等等需求,需要扎實(shí)的正則功底。本文提供一個(gè)全面的url拆分案例,需要哪個(gè)部分用哪個(gè)部分。
案例
將url的各個(gè)部分拆開,讓我想取哪部分就取哪部分?
url: http://www.baidu.com/love/java?lang=java regex: (\w+):\/\/([^/:]+)(:\d*)?([^# ]*)
使用js舉例
var url = "http://www.baidu.com:80/love/java?lang=java"; var patt1 = /(\w+):\/\/([^/:]+)(:\d*)?([^# ]*)/; arr = url.match(patt1); for (var i = 0; i < arr.length ; i++) { document.write(arr[i]); document.write("<br>"); }
輸出結(jié)果如下:
http://www.baidu.com:80/love/java?lang=java
http
www.baidu.com
:80
/love/java?lang=java
使用java舉例
String url = "http://www.baidu.com:80/love/java?lang=java"; Pattern pattern = Pattern.compile("(\\w+):\\/\\/([^/:]+)(:\\d*)?([^# ]*)"); Matcher matcher = pattern.matcher(url); matcher.find(); for (int i = 1; i <= matcher.groupCount(); i++){ System.out.println(matcher.group(i)); }
輸出結(jié)果:
http
www.baidu.com
:80
/love/java?lang=java
正則說明
實(shí)例中的數(shù)組包含 5 個(gè)元素,索引 0 對(duì)應(yīng)的是整個(gè)字符串,索引 1 對(duì)應(yīng)第一個(gè)匹配符(括號(hào)內(nèi)),以此類推。
第一個(gè)括號(hào)子表達(dá)式捕獲 Web 地址的協(xié)議部分。該子表達(dá)式匹配在冒號(hào)和兩個(gè)正斜杠前面的任何單詞。
第二個(gè)括號(hào)子表達(dá)式捕獲地址的域地址部分。子表達(dá)式匹配非 : 和 / 之后的一個(gè)或多個(gè)字符。
第三個(gè)括號(hào)子表達(dá)式捕獲端口號(hào)(如果指定了的話)。該子表達(dá)式匹配冒號(hào)后面的零個(gè)或多個(gè)數(shù)字。只能重復(fù)一次該子表達(dá)式。
第四個(gè)括號(hào)子表達(dá)式捕獲 Web 地址指定的路徑和 / 或頁(yè)信息。該子表達(dá)式能匹配不包括 # 或空格字符的任何字符序列。
總結(jié)
到此這篇關(guān)于正則表達(dá)式拆分url的文章就介紹到這了,更多相關(guān)正則表達(dá)式拆分url內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python 正則表達(dá)式獲取字符串中所有的日期和時(shí)間
這篇文章主要介紹了python 正則表達(dá)式獲取字符串中所有的日期和時(shí)間,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-10-10php匹配網(wǎng)址的正則 幾乎可以匹配任何網(wǎng)址
php匹配網(wǎng)址的正則 幾乎可以匹配任何網(wǎng)址,需要的朋友可以參考下2013-05-05匹配5到10位無重復(fù)數(shù)字的正則表達(dá)式
對(duì)于有重復(fù)的5到10位數(shù)字可以使用\d{5,10} 這樣的正則,無重復(fù)的5到10位數(shù)字我考慮了一下還不會(huì),最然只好查網(wǎng)上,找了段代碼,分享給需要的朋友2012-10-10Python如何使用正則表達(dá)式識(shí)別代碼中的中文、英文和數(shù)字
正則表達(dá)式是一種強(qiáng)大的工具,可以幫助我們實(shí)現(xiàn)識(shí)別代碼中的中文、英文和數(shù)字,本文將分三個(gè)部分詳細(xì)介紹如何使用正則表達(dá)式在 Python 中識(shí)別代碼中的中文、英文和數(shù)字,感興趣的朋友跟隨小編一起看看吧2023-06-06比較正宗的驗(yàn)證郵箱的正則表達(dá)式j(luò)s代碼詳解
郵箱正則最正宗的一條正則語(yǔ)句是^[a-z0-9]+([._\\-]*[a-z0-9])*@([a-z0-9]+[-a-z0-9]*[a-z0-9]+.){1,63}[a-z0-9]+$ 下面我們來講解一下2012-09-09