正規表示式驗證Ip地址(絕對正確)

十案圈圈發表於2016-02-04

之前一直不太會寫正規表示式,很多要用到正規表示式的都直接百度,像上次要用正規表示式驗證是否是合法的ip地址,然後就上網找,結果就是沒找到一個對的,今天就為大家貢獻一下,寫個對的,並做一下解析。(建議大家還是去看書去規範的學一下,不要直接百度,不然都是坑)。

iPv4的ip地址都是(1~255).(0~255).(0~255).(0~255)的格式

我這裡的寫法沒有考慮172.00.01.3這種,前面以零開頭,或者多個零的這種情況,如果想支援,可根據下面的解釋進行擴充套件。

下面給出相對應的正規表示式:

"^(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|[1-9])\\."

+"(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\."

+"(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\."

+"(1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)$"

上面的一個不漏就是正確的驗證ip的正規表示式,簡單的講解一下

\d表示0~9的任何一個數字

{2}表示正好出現兩次

[0-4]表示0~4的任何一個數字

| 的意思是或者

( )上面的括號不能少,是為了提取匹配的字串,表示式中有幾個()就表示有幾個相應的匹配字串

1\\d{2}的意思就是100~199之間的任意一個數字

2[0-4]\\d的意思是200~249之間的任意一個數字

25[0-5]的意思是250~255之間的任意一個數字

[1-9]\\d的意思是10~99之間的任意一個數字

[1-9])的意思是1~9之間的任意一個數字

\\.的意思是.點要轉義(特殊字元類似,@都要加\\轉義)

說到這裡應該已經很清楚的知道了上面的正規表示式的意思。

相關文章