Java的。正则表达式匹配器不工作,正则表达式适用于c#或vb.net

时间:2013-10-21 13:48:18

标签: java regex

我正在开发一个解析扫描报告的应用程序,因此我正在使用正则表达式来过滤它们。我的正则表达式是\\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!");

1 个答案:

答案 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!");

    }

}