国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Regex > 正文

匹配 IP 地址與域名的正則表達式

2020-03-16 21:04:27
字體:
來源:轉載
供稿:網友
本篇文章介紹了,用于匹配IP地址與域名的正則表達式,并對域名知識做了些介紹,有需要的朋友,可以參考下。
 

一個完整的域名,由根域、頂級域、二級、三級……域名構成,每級域名之間用點分開,每級域名由字母、數字和減號構成(第一個字母不能是減號),不區分大小寫,長度不超過63。

單獨的名字可以由正則表達式[a-zA-Z0-9][-a-zA-Z0-9]{0,62}來匹配,而完整的域名至少包括兩個名字(比如google.com,由google和com構成),最后可以有一個表示根域的點(在規范中,最后有一個點的才是完整域名,但一般認為包括兩個以上名字的域名也是完整域名,哪怕它后面沒有點)。

匹配完整域名的正則表達式:

 

復制代碼代碼如下:

[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(/.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+/.?

 

一個IP字串,由四段組成,每一段是0~255的數字,段與段之間用小數點隔開,比如61.139.2.69就是一個合法的IP字串。

  如果正則表達式寫成/d{1,3}(/./d{1,3}){3}無疑是不負責的,因為它可以匹配300.400.555.666這樣的非法IP字串。

  要匹配一個0~255之間的數,有幾種匹配方式,下面是其中一種:

匹配 正則表達式 說明

  0~9 /d 單個數字
  10~99 [1-9]/d 兩位數
  100~199 1/d/d 百位為1的三位數
  200~249 2[0-4]/d 三位數,百位是2,十位是0~9
  250~255 25[0-5] 三位數,百位是2,十位是5,個位是0~5

  寫成正則表達式,即:(/d|([1-9]/d)|(1/d/d)|(2[0-4]/d)|(25[0-5])),但是這樣的正則表達式在匹配254這樣的字串時,會分別匹配2、5、4,得到3個匹配,達不到預期效果,正確做法是將次序顛倒為((25[0-5])|(2[0-4]/d)|(1/d/d)|([1-9]/d)|/d),因為在(xxx|yyy)這種匹配行為中,是從左向右搜索的。

  完整的正則表達式是: 

 

復制代碼代碼如下:

((25[0-5])|(2[0-4]/d)|(1/d/d)|([1-9]/d)|/d)(/.((25[0-5])|(2[0-4]/d)|(1/d/d)|([1-9]/d)|/d)){3}

 

  按:

  象061這樣的高位為0的數是不能被匹配的。

因此,最上面(1. 部分)的寫法才是正確完整版的,(2. 部分)的寫法較為片面


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 杂多县| 华坪县| 长治县| 定州市| 墨江| 徐汇区| 藁城市| 庐江县| 荥阳市| 佛冈县| 渭源县| 黄山市| 宝清县| 黄浦区| 肃北| 炎陵县| 夏邑县| 阳高县| 如皋市| 霍邱县| 隆安县| 来宾市| 武宁县| 凉山| 金山区| 开远市| 卓资县| 大埔区| 阿克陶县| 商城县| 凭祥市| 武乡县| 诸城市| 伽师县| 台中县| 辽阳县| 纳雍县| 鹤岗市| 榆社县| 舒兰市| 宁波市|