搜尋
首頁常見問題詳解IP位址的正規表示式

詳解IP位址的正規表示式

Jun 12, 2020 am 09:12 AM
正規表示式

詳解IP位址的正規表示式

IP位址的正規表示式分析詳解

IP位址的長度為32位,分成4段,每段8位,以十進制數字表示,每段數字範圍為0~255,段與段之間用英文句點“.”隔開。例如:某台電腦IP位址為10.11.44.100。

分析IP位址的組成特點:250-255、200-249、0-199。

這三種情況可以分開考慮, 

250-255:特點:三位數,百位是2,十位是5,個位是0~5,用正規表達式可以寫成:25[0-5] 

200-249:特點:三位數,百位是2,十位是0~4,個位是0~9,用正規表示式可以寫成:2[0-4]\d 

0-199:這個可以繼續分拆,這樣寫起來更加簡單明了. 

0-9:    特點:一位數,個位元是0~9,用正規表示式可以寫成:\d 

10-99:  特點:二位數,十位是1~9,個位元是0~9,用正規表示式可以寫成:[1-9]\d 

100-199:特點:三位數,百位是1,十位是0~9,個位是0~9,用正規表示式可以寫成:1\d{2}

於是0-99的正規表示式可以合寫為[1-9]?\d,那麼0-199用正規表示式就可以寫成(1\d{ 2})|([1-9]?\d),這樣0~255的正規表示式就可以寫成(25[0-5]|2[0-4]\d|((1\d{2 })|([1-9]?\d))) 

最後,前面3段加上句點.可以用{3}重複得到,第4段再來一次同樣的匹配,得到IP位址的正規表示式:

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

與大家互動一下: 

  為什麼三位數的匹配放在二位數/一位數的前面?因為正規表示式規則之一:最先開始的配對擁有最高的優先權。 
2.  0.0.0.0和255.255.255.255是合法存在的IP位址,你知道是為什麼嗎?
3.  192.169.01.108這種數字前面多帶了個0的類型的,在這裡不是合法的,為什麼要這樣?
4.  為什麼前面在最前面要有?:呢?它在這裡有什麼用? 
5.  若您發現本表達式有錯誤,也請留言指正!

推薦教學:《IP

以上是詳解IP位址的正規表示式的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:liqingbo。如有侵權,請聯絡admin@php.cn刪除

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前By尊渡假赌尊渡假赌尊渡假赌
威爾R.E.P.O.有交叉遊戲嗎?
1 個月前By尊渡假赌尊渡假赌尊渡假赌

熱工具

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)