正則表達式 之 IP段,CIDR 一篇就搞定

IP表示法

       除了點分十進制,還有 CIDR 表示法,比如: 192.168.0.1/24

子網劃分裏CIDR用的比較多:

        可以參考子網劃分的文章:https://blog.csdn.net/u012219045/article/details/60466352

正則表達式如下:

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

 親切有效:

        在線測試網址:https://c.runoob.com/front-end/854

源自菜鳥的Python代碼:

import re
pattern = re.compile(r'^(?:(?:[0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}(?:[0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\/([1-9]|[1-2]\d|3[0-2])$')

str = '192.168.0.1/24'
print(pattern.search(str))

str = '192.168.0.1/0'
print(pattern.search(str))

str = '192.168.0.1/33'
print(pattern.search(str))

str = '192.168.0.1/'
print(pattern.search(str))

str = '192.168.0.1'
print(pattern.search(str))

 

源自菜鳥的JS代碼:

var pattern = /^(?:(?:[0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}(?:[0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\/([1-9]|[1-2]\d|3[0-2])$/,
	str = '';
console.log(pattern.test(str));

 

源自菜鳥的GO語言:

 

package main

import (
	"fmt"
	"regexp"
)

func main() {
	str := ""
	matched, err := regexp.MatchString("^(?:(?:[0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}(?:[0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\/([1-9]|[1-2]\\d|3[0-2])$", str)
	fmt.Println(matched, err)
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章