gpt4 book ai didi

java - 尝试使用正则表达式解析日志文件

转载 作者:行者123 更新时间:2023-12-02 12:57:46 25 4
gpt4 key购买 nike

我正在尝试使用正则表达式解析日志文件,并且我了解首先提取 IP 地址,但我不知道如何超越日志文件的其余部分。那么,要开始解析其余部分,我是否只需添加正则表达式来解析日期等?所以我将第二个元素设置为第二个IP 72.37.100.86。然后我想排除“- - -”,并将日期作为第四个元素,将“GET/HTTP/1.1:”作为第八个索引,将状态代码 200 作为第九个索引。任何有关这方面的帮助将不胜感激,以了解我下一步需要做什么。

package com.text.nginx_log_parser;

import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegExTester {


// Actual Entry : 10.10.100.151 - 72.37.100.86, 192.36.20.508 - - - [04/Jul/2016:12:50:06 +0000] https https https "GET / HTTP/1.1" 200 20027 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.107 Safari/537.36"
public static String logEntry = "10.10.100.151 - 72.37.100.86, 192.36.20.508 - - - [04/Jul/2016:12:50:06 +0000] https https https \"GET / HTTP/1.1\" 200 20027 \"-\" \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.107 Safari/537.36\"\r\n";

//public static String regex = "(\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3})";
//public static String regex = "(\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3})";
public static void main (String [] args){

String regex = "(\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3})\\s*-*\\s*-*\\s*-*";
regexChecker(regex, logEntry);
regex = "\\[*\\]\\s.";
regexChecker(regex, logEntry);
}

public static void regexChecker(String regex, String str){

Pattern pattern = Pattern.compile(regex);

Matcher matcher = pattern.matcher(logEntry);
//String firstIP = matcher.group(0);
//String secondIP = matcher.group();
//String timestamp =
while(matcher.find()){
System.out.println( matcher.group(0));
}
}
}

最佳答案

使用以下正则表达式:

(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})[-\s]+(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}).+?\[(.+?)\].*?\"(.+?)\"\s(\d{3}).*$ 

您正在按照this entry on regex101.com查看捕获组15

关于java - 尝试使用正则表达式解析日志文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44369463/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com