繁体   English   中英

从IP地址提取前三个八位字节

[英]Extract first three octet from IP address

我需要从IP地址(C类)中提取前三个八位位组,并且可以通过分割"//."来做到这一点"//." 但是有没有办法使用REGEX做到这一点。

输入: 192.168.1.1输出: 192.168.1

像这样:

/^[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}/

使用匹配就可以了。

对于Java更精确:

Pattern p = Pattern.compile("([0-9]{1,3})\\.([0-9]{1,3})\\.([0-9]{1,3}).*");
Matcher m = p.matcher("127.0.2.13");
if (m.matches()) {
    String s0 = m.group(1);   // contains "127"
    String s1 = m.group(2);   // contains "0"
    String s2 = m.group(3);   // contains "2"
    System.out.println("s0 + "." + s1 + "." + s2);
}

这个稍微更简单的模式也可以工作:

Pattern p = Pattern.compile("(\\d{1,3})\\.(\\d{1,3})\\.(\\d{1,3}).*");

真正的正则表达式教程在这里

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM