如何在java中打开文件并解析每一行

时间:2018-05-20 16:05:34

标签: java regex parsing file-io

我有一个包含以下数据的文本文件:

  

发件人ID:1 /序号:0 /深度:600 /发送时间:13/05/2018   11:17:17ص/ data:你好我是AUV:1这是我的聚合#0   sideEnd-End Delay:0.357072263241232发送者ID:0 /序列号:   0 /深度:700 /发送时间:13/05/2018 11:17:17ص/ data:您好我是AUV:   0这是我的sideEnd-End Delay聚合#0:0.293693984840975   发件人ID:2 /序列号:0 /深度:500 /发送时间:13/05/2018   11:17:17ص/ data:你好我是AUV:2这是我的聚合#0   sideEnd-End Delay:0.421466419584594发送者ID:3 /序列号:   0 /深度:400 /发送时间:13/05/2018 11:17:17ص/ data:你好我是AUV:   3这是从我的端到端延迟的聚合#0:0.486473186901286   发件人ID:3 /序号:1 /深度:400 /发送时间:13/05/2018   11:17:18ص/ data:你好我是AUV:3这是我的聚合#1   sideEnd-End Delay:0.486473186901286发送者ID:1 /序列号:   0 /深度:600 /发送时间:13/05/2018 11:17:21ص/ data:你好我是AUV:   1这是从我的端到端延迟的聚合#0:0.32221205728025   发送者ID:0 /序列号:0 /深度:700 /发送时间:13/05/2018   11:17:21ص/ data:你好我是AUV:0这是我的聚合#0   sideEnd-End Delay:0.267329486404354

每行以结束延迟结束,例如第1行:

  

发件人ID:1 /序号:0 /深度:600 /发送时间:13/05/2018   11:17:17ص/ data:你好我是AUV:1这是我的聚合#0   sideEnd-End Delay:0.357072263241232

我需要将此文件分成其他文件,其中每个文件对应于特定的发件人ID。

每个文件只包含每个发件人ID的终端延迟值,例如0.357072263241232。

我有4个发件人,因此将生成4个文件...

请帮忙或提示吗?

我没有正则表达式的经验!

1 个答案:

答案 0 :(得分:1)

尝试正则表达式:sender\sid:\s(\d+).*?End-End\sDelay:(\d+(?:\.\d+)?)

Demo

第1组将拥有发件人ID

第2组将具有结束延迟值