我正在开发一个解析扫描报告的应用程序,因此我正在使用正则表达式来过滤它们。我的正则表达式是\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\s{1,10}\\d{1,4}\\sms.*
(使用转义斜杠)和我正在过滤的文本看起来像
172.20.4.3 0 ms k2g-dhcp.somedomain.jp [n/s] 00:1C:C4:5B:12:F2 [n/a]
172.20.4.4 [n/a] [n/s] [n/s] [n/s]
我已经测试了给定的正则表达式并且它正常匹配,但在Java中它没有。 这是我的代码:
Pattern pat = Pattern.compile("\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\s{1,10}\\d{1,4}\\sms.*", Pattern.CASE_INSENSITIVE);
Matcher mat = pat.matcher(data);
while(mat.find())
{
System.out.println("Found matches!"); // Code never gets here
}
System.out.println("Done!");
答案 0 :(得分:0)
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class PatternSample {
public static void main(String[] args) {
String data = "172.20.4.3 0 ms k2g-dhcp.somedomain.jp [n/s] 00:1C:C4:5B:12:F2 [n/a] ";
Pattern pat = Pattern.compile("\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\s{1,10}\\d{1,4}\\sms.*", Pattern.CASE_INSENSITIVE);
Matcher mat = pat.matcher(data);
while(mat.find())
{
System.out.println("Found matches!"); // Code never gets here
}
System.out.println("Done!");
}
}