我编写了以下程序来编写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"
我不知道为什么会发生这种情况。(因为最后一个八分音符已经在其中,因此它应该打印"未找到")