【发布时间】:2019-02-22 07:31:44
【问题描述】:
我正在尝试使用 Java 从字符串格式的文件中解析/提取数据。该文件不包含不相同的数据,数据在几行中用逗号分隔,在几行中用空格分隔。但在同一行内相同。此外,留置权中的参数是不相同的。
行示例:
ipaadress,timestamp,text,text,url,text,email
email text ipaddress text timestamp url
text - timestamp ipaddress text text url email
text,integer,integer,text,ipaddress,timestamp email
等等……
例如,我必须从所有行中识别电子邮件、IP 地址、电子邮件、网址,是否有这样做的模式?还是我应该只按分隔符拆分并单独解析/识别拆分是否是电子邮件/IP地址/网址等?
我已经关注 this 以使用 Grok 使其适用于相同的数据,JSON 是关键。是否有办法使用Grok 解决不一致问题?
帮助我理解。
【问题讨论】:
-
如果字段的顺序不一样,最好一次用一个regex来提取信息,虽然也可以用一个regex,但是会有点复杂。
-
同意,拆分然后检查。一个巨大的正则表达式更难维护且容易出错(可能有超级骗子正则表达式天才,正则表达式解决方案对他们来说更简单,但当你需要它时,它肯定对大多数人来说都是一样的)。
-
这与“grok”框架有什么关系吗?如果没有,你已经错误地标记了这个!在将它们添加到问题之前,请阅读标签摘要。
-
@StephenC 我已经尝试过用 Java 中的 Grok 解析相同的数据。成功地从行中提取了一个 JSON。所以我很好奇是否可以将不相同的放在一起。
-
'grok' 是一个 PHP 框架。你使用的是'java-grok'。