如何在Unix服务器上用Java中的不同分隔符拆分复杂字符串

如何在Unix服务器上用Java中的不同分隔符拆分复杂字符串,java,Java,我有一条像这样的线 Status:success //expect in key value pair Date:02/02/2019 //key=Date and value=02/02/2019 Name:abc Remarks:category:xyz-info:shjjd jidjhe-DOB:21/07/1988. //key=comments和value=category:xyz-info:any-info-DOB:21/07/1988,所以这里我们将再次拆分值,如下所示 K

我有一条像这样的线

Status:success  //expect in key value pair
Date:02/02/2019 //key=Date and value=02/02/2019
Name:abc
Remarks:category:xyz-info:shjjd jidjhe-DOB:21/07/1988.  
//key=comments和value=category:xyz-info:any-info-DOB:21/07/1988,所以这里我们将再次拆分值,如下所示

Key=category and value=xyz
Key=info and value=any info
上面的字符串拆分正在工作,但有时备注字段数据不是标准格式,它可能是:

1) 备注:备注:备注:类别:Abc信息:任何信息日期:1988年7月21日

2) 备注:类别:abc信息:拥有数据的任何信息日期:1988年7月21日


就像这里的分隔符在变化,所以我找不到这个的模式。有人能帮我解决这个问题吗。我想用java for Unix服务器来实现这一点。非常感谢您的帮助。

注意:我将上面的字符串编辑为您想说的内容。请评论你的意图是否不同(当然是自己编辑)。三个建议:1)不断尝试不同的(可能是越来越复杂的)正则表达式直到它“工作”,2)而不是依赖java String .SPLIT(),编写自己的代码来进行自己的解析,3)考虑不同的工具。由于您使用的是Unix,“Perl”或“awk”可能是很好的选择。您能否指定如何分割1)和2)数据?另外,您的第一个示例不清楚递归拆分后需要哪些数据。您现在使用什么代码拆分这个所谓的复杂字符串?这看起来并不复杂,可以使用正则表达式查找
单词
字符串的其余部分
,或者如果键总是在一起,只需查看每一行是否以
状态:
日期:
等开头。注意:我按照您想说的内容编辑了上面的字符串。请评论你的意图是否不同(当然是自己编辑)。三个建议:1)不断尝试不同的(可能是越来越复杂的)正则表达式直到它“工作”,2)而不是依赖java String .SPLIT(),编写自己的代码来进行自己的解析,3)考虑不同的工具。由于您使用的是Unix,“Perl”或“awk”可能是很好的选择。您能否指定如何分割1)和2)数据?另外,您的第一个示例不清楚递归拆分后需要哪些数据。您现在使用什么代码拆分这个所谓的复杂字符串?这看起来并不复杂,使用正则表达式查找字符串的剩余部分,或者如果键总是在一起,只需查看每一行是否以
状态:
日期:
开始,依此类推。