Ruby 给定日志文件的正则表达式

Ruby 给定日志文件的正则表达式,ruby,regex,Ruby,Regex,嗨,我需要正则表达式来解析以下日志文件行: 2015-07-06 11:07:29 +0950 [ERROR] index=heal-legacy host=imb.asp.com com.iml.Keplas.collector.CollectorException: Could not process additional data, connection lost to data collector service Expected result is : Time 2015-07-

嗨,我需要正则表达式来解析以下日志文件行:

2015-07-06 11:07:29 +0950 [ERROR] index=heal-legacy host=imb.asp.com 
com.iml.Keplas.collector.CollectorException: Could not process additional data, connection lost to data collector service
Expected result is :
Time   2015-07-06 11:07:29
Type   ERROR
Index  heal-legacy
Host   imb.asp.com 
Message Could not process additional data, connection lost to data collector service

请帮助我获取这些字段时间、类型([ERROR])、索引、主机、消息。

您可以尝试使用以下正则表达式:

(?<date>\d{4}-\d{2}-\d{2})\s+(?<time>\d{2}:\d{2}:\d{2})\s+\+\d{4}\s+(?<error>\S+)\s+index=(?<index>\S+)\s+host=(?<host>\S+)\s+(?<message>.*)
(?\d{4}-\d{2}-\d{2})\s+(?\d{2}:\d{2}:\d{2})\s++\d{4}\s+(?\s+)\s+索引=(?\s+)\s+主机=(?\s+)\s+(?*)
请参见

s=“2015-07-06 11:07:29+0950[错误]索引=heal legacy host=imb.asp.com
com.iml.Keplas.collector.CollectorException:无法处理其他数据,与数据收集器服务的连接丢失“
a=s.split(“,7)
#=>[“2015-07-06”,“11:07:29”,“+0950”,“错误],“index=heal legacy”,“host=imb.asp.com”,“com.iml.Keplas.collector.collector异常:无法处理其他数据,与数据收集器服务的连接丢失”]

[a.first(3).连接(“”),a[3],a[4][/(?您期望的输出循环是什么样的?到目前为止您已经尝试了什么?您并不真的需要一个正则表达式来完成此操作。日志文件是用固定数量的列分隔的。您有很多否决票的原因是您要求我们为您做工作。您希望在解决此问题时显示出一点努力。我看到您已经有了一个重新使用正则表达式,所以请考虑接受答案。
s = "2015-07-06 11:07:29 +0950 [ERROR] index=heal-legacy host=imb.asp.com 
com.iml.Keplas.collector.CollectorException: Could not process additional data, connection lost to data collector service"
a = s.split(" ", 7)
# => ["2015-07-06", "11:07:29", "+0950", "[ERROR]", "index=heal-legacy", "host=imb.asp.com", "com.iml.Keplas.collector.CollectorException: Could not process additional data, connection lost to data collector service"]
[a.first(3).join(" "), a[3], a[4][/(?<==).+/], a[5][/(?<==).+/], a[6]]
# => ["2015-07-06 11:07:29 +0950", "[ERROR]", "heal-legacy", "imb.asp.com", "\ncom.iml.Keplas.collector.CollectorException: Could not process additional data, connection lost to data collector service"]