当前位置: 代码迷 >> J2SE >> 正则婚配时间很长
  详细解决方案

正则婚配时间很长

热度:65   发布时间:2016-04-23 22:01:01.0
正则匹配时间很长
我用正则去解析Nginx的Accesslog,遇到一些异常日志时,正则匹配过程就会很长,相当于程序挂起了:


import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class App {

    public static void main(String[] args) {

        Pattern ptrn = Pattern.compile("(.*?) (.*?) (.*?) (.*?) (.*?)  \\[(.*?)\\] " +
                                       "(.*?) \"(.*?) (.*?) (.*?)\" (.*?) (.*?) " +
                                       "\"(.*?)\" \"(.*?)\" \"(.*?)\" \"(.*?)\" - \"(.*?) (.*?)\"");
        String log = ", 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2, 10.10.3.23, 10.10.6.2\" - \"10.10.6.2:80 -\"";
  相关解决方案