Java分割文本 - 正则表达式或其他:日期+文本日期+文本

时间:2016-08-05 22:20:07

标签: java

我需要拆分由日期和文本组成的大型Java字符串(日期和后面的文本代表一个条目)。

使用Java代码(正则表达式或其他方法)

字符串示例

String bigText = "2016-08-05 My Test 1 2016-08-04 My Test 2 2016-08-03 My Test 3 ...";

结果必须是:

2016-08-05 My Test 1
2016-08-04 My Test 2
2016-08-03 My Test 3 
...

有什么建议将字符串分开吗?

我会尽快等待你的回复。

此致

2 个答案:

答案 0 :(得分:0)

使用前瞻来识别日期后面的空格。您可以拆分或用换行符替换它。

\s(?=\d{4}-\d{2}-\d{2})

为了分裂:

String[] output = input.split("\\s(?=\\d{4}-\\d{2}-\\d{2})");

为了取代:

String output = input.replaceAll("\\s(?=\\d{4}-\\d{2}-\\d{2})", "\n");

Regex101 Demo

答案 1 :(得分:0)

您可以使用StringBuilder

执行此类操作
String bigText = "2016-08-05 My Test 1 2016-08-04 My Test 2 2016-08-03 My Test 3 ...";     
StringBuilder str = new StringBuilder(bigText);     
int i = 0;
while ((i = str.indexOf(" ", i + 20)) != -1)
{
    str.replace(i, i + 1, "\n");
}    

System.out.println(str.toString());

输出:

  

2016-08-05我的测试1
  2016-08-04我的测试2
  2016-08-03我的测试3
  ...

View the Demo