log分析

xmq68pz9  于 2021-06-24  发布在  Pig
关注(0)|答案(2)|浏览(172)

我有一个.txt文件,看起来像:

2017-06-22 23:19:05,758 use database stocks
2017-06-22 23:21:27,056 CREATE TABLE stocksdata ( stock_exchange string,

stock_symbol string, date TIMESTAMP,

我写的正则表达式是 ^(\\d{4}-\\d{2}-\\d{2})\\s+(\\d{2}:\\d{2}:\\d{2}),(\\d{3})\\s((?i)(create|select|use).*)$ .
但我的输出是

2017-06-22 23:19:05,758 use database stocks
2017-06-22 23:21:27,056 CREATE TABLE stocksdata ( stock_exchange string,

它不是在下一行输入即股票符号字符串,日期时间戳,行,。我也要抓住这条线。

umuewwlo

umuewwlo1#

尝试使用以下模式:

^(\d{4}-\d{2}-\d{2})\s+(\d{2}:\d{2}:\d{2}),(\d{3})\s((?i)(create|select|use)[\s\S]*)$

我换了新的 .* 最后是 [\s\S]* ,因为后者消耗新行。

tzdcorbm

tzdcorbm2#

最后,这个表达式终于成立了
(\d{4}-\d{2}-\d{2})\s+(\d{2}:\d{2}:\d{2}),(\d{3})\s(\w{4})\s(.)(()(创建\s |选择\s |使用\s)。(.\s\s?\d.\s\d)*)
感谢您的回复

相关问题