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

时间:2016-09-18 17:57:19

标签: regex ip-address

我需要从IP地址(C类)中提取前三个八位字节,我可以通过拆分"//."来完成。但有没有办法使用REGEX。

输入:192.168.1.1输出:192.168.1

2 个答案:

答案 0 :(得分:1)

这样的事情:

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

使用匹配并完成..

答案 1 :(得分:0)

更准确地说是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}).*");

非常好的正则表达式教程here