正则表达式匹配IP地址

1. IP段都表示一个字节,即只能在 0~255之间。

所以一个正确的IP应该是:(0~255) .(0~255) .(0~255) .(0~255)

通过观察可以发现可以将整个IP分为两部分匹配,即:(0~255) 和 .(0~255) 3次

2. 0~255可以分两部分匹配 0~199 和 200~255

a) 0~199 正则表达式为 [0-1]?\d{1,2}

[0-1]? 表示匹配 0或1一次或零次
\d 表示匹配任意一个十进制数字,即 0~9
{1,2} 表示匹配上一个元素至少一次,最多两次,这里就是 \d一次或两次
b) 200~255 正则表达式为 2((5[0-5])|([0-4]\d)),又可以分为两部分 200~249 和 250~255

2 表示必须以2开头
5[0-5] 表示匹配 50~55 之间的数
[0-4]\d 表示 00~49 之间的数

3.三个部分的正则匹配

a) (0~255) 的正则表达式可以写为 (2((5[0-5])|([0-4]\d)))|([0-1]?\d{1,2})
b) .(0~255) 的正则表达式可以写为 .((2((5[0-5])|([0-4]\d)))|([0-1]?\d{1,2}))
c) .(0~255) 匹配3次的正则表达式可以写为 (.((2((5[0-5])|([0-4]\d)))|([0-1]?\d{1,2}))){3}

4. 正则表达式为

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

^ 表示匹配字符串开头
$ 表示匹配字符串结尾

  • 5
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要根据正则表达式匹配IP地址,可以使用以下正则表达式: "((2(5[0-5]|[0-4]\\d))|[0-1]?\\d{1,2})(\\.((2(5[0-5]|[0-4]\\d))|[0-1]?\\d{1,2})){3}" 这个正则表达式可以匹配IP地址的各个部分,并确保每个部分的取值范围在0到255之间。 在Java中,可以使用java.util.regex包中的Pattern和Matcher类来进行正则表达式匹配。可以使用以下示例代码来实现IP地址的匹配: import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegexMatches { public static void main(String args[]) { String str = ""; // 需要匹配的字符串 String pattern = "((2(5[0-5]|[0-4]\\d))|[0-1]?\\d{1,2})(\\.((2(5[0-5]|[0-4]\\d))|[0-1]?\\d{1,2})){3}"; // IP地址正则表达式 Pattern r = Pattern.compile(pattern); Matcher m = r.matcher(str); System.out.println(m.matches()); // 输出匹配结果,true表示匹配成功,false表示匹配失败 } } 你可以使用这段代码将要匹配的字符串赋值给str变量,然后通过调用m.matches()方法来判断是否匹配成功。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [正则表达式-匹配ip及rtsp](https://blog.csdn.net/wangchaox123/article/details/102753170)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

许你今世繁华

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

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

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

打赏作者

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

抵扣说明:

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

余额充值