ip和端口号的正则表达式

前言

ip以及端口号的正则表达式
在逻辑应用比较广泛
前置知识点:^匹配开头第一个,$匹配的结尾

对于更多的知识点可看我java框架:
java框架零基础从入门到精通的学习路线(超全)

1. ip地址

关于可用的ip地址可看我之前写的一篇文章:
可使用的局域网地址范围

【1-9】表示取1到9的数字范围,这种是取值的正则

  • 第一个数字((25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))
    250-255,正则为25[0-5]
    200到249,正则为2[0-4]\d
    100到199,正则为1\d{2},{2}代表有2个数字d
    0到99,正则为[1-9]?\d,?代表一个或者零个1到9
    每个数字之间都有个.通过\.进行转义
  • 第二三四的数字同理所以使用{3}

ip地址的python正则为:

r"^(((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))))"

通过这个网址可看到:regex101官网
在这里插入图片描述

写成python(展示个人项目的东西):
本身验证的地址就是ip:端口号,通过分割的形式获取到想要的ip以及端口号

sidorip = kwargs.get("sidorip","")
pattern1 = re.compile(
     r"^(((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))))")

if pattern1.match(sidorip):
    my_list = sidorip.split(':')
    host = my_list[0]
    port = my_list[1]

如果是js格式的验证ip地址:

var sidorip = $('#sidorip').val().trim();
console.log(sidorip)

var pattern = /^(((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))))$/;

if(sidorip.match(pattern) == null) {
    alert(" SID / IP 格式错误 , 请重新刷新网页添加正确的格式 ")
}

关于ip的正则 也可以将其拆分,但是个位数与上面不同:

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

2. 端口号

端口号的地址是:1-65535
同理ip地址,将其拆分开来
通过

60000-65535;10000-59999;1000-9999;100-999;10-99;0-9
端口号的正则表达式:

^([0-9]{1,4}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])$

如果这部分代码放在js模块中:

var sidorip = $('#sidorip').val().trim();
console.log(sidorip)

var pattern = /^(\:([0-9]|[1-9]\d{1,3}|[1-5]\d{4}|6[0-4]\d{4}|65[0-4]\d{2}|655[0-2]\d|6553[0-5]))$/;

if(sidorip.match(pattern) == null) {
   alert(" SID / IP 格式错误 , 请重新刷新网页添加正确的格式 ")
}
^([0-9]{1,4}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])$

^([0-9]|[1-9]\d{1,3}|[1-5]\d{4}|6[0-4]\d{4}|65[0-4]\d{2}|655[0-2]\d|6553[0-5])$

3. ip:端口号

如果两者合并,只是多了的转义
python的正则如下:

^(((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))))\:([0-9]|[1-9]\d{1,3}|[1-5]\d{4}|6[0-4]\d{4}|65[0-4]\d{2}|655[0-2]\d|6553[0-5])$

在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码农研究僧

你的鼓励将是我创作的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值