十六进制字符的正则表达式

时间:2015-11-22 23:41:12

标签: java regex

我编写了以下程序来编写IPV6验证。

import java.util.regex.*;
import java.io.*;
import java.util.*;

public class demo
{
    //static String pattern = "([\\da-f]+):([\\da-f]+):([\\da-f]+):([\\da-f]+):([\\da-f]+):([\\da-f]+):([\\da-f]+):([\\da-f]+)";
    public static void main(String []args)
    {
        Pattern p=Pattern.compile(pattern);
        while(true)
        {
            Scanner sc = new Scanner(System.in);
            String line = sc.nextLine();
            if(line.equals(-1))
                System.exit(0);
            Matcher m =p.matcher(line);
            if(m.find())
                System.out.println("Found");
            else
                System.out.println("Not Found");
        }
}
}

但是当我运行代码时,它正在打印"发现"对于下面的字符串。 " 1050:10:0:0:15:600:300C:326h"

我不知道为什么会发生这种情况。(因为最后一个八分音符已经在其中,因此它应该打印"未找到")

0 个答案:

没有答案