我的日志文件记录如下所示:
107.344.154.200---[2005年8月23日:00:03:14-0400]“get/images/theimage.gif http/1.0”200 11401
我用这种语法来解析日志文件
创建表日志文件(
主机字符串,
标识字符串,
用户字符串,
时间字符串,
请求字符串,
状态字符串,大小字符串)行格式serde'org.apache.hadoop.hive.serde2.regexserde',带有serdeproperties(“input.regex”=“([^])([^])([^])(([^])([^[^]])([^\“]\”[^\“]\”)([^\“]\”)([0-9])([0-9]),
“output.format.string”=“%1$s%2$s%3$s%4$s%5$s%6$s%7$s”)存储为文本文件;
我可以使用什么正则表达式语法来解析时间,在这里它将按日-月-年-分-秒分割[23/aug/2005:00:03:14-0400]?
1条答案
按热度按时间xe55xuns1#
说明
此正则表达式将执行以下操作:
分析日志条目并查找日期和时间
捕获各种日期部分,如日、月、年、时、分、秒、utc偏移量
正则表达式
注意,根据语言的不同,你可能不得不逃避
/
把它们换成\/
. 但是每一种语言都是不同的。解释
示例文本
现场演示
https://regex101.com/r/hf4fp8/1
样本匹配