首页 > 解决方案 > 从带有垃圾数据的字符串中删除日期 - Java

问题描述

我需要知道是否有任何方法可以单独从文本中删除日期,如下面的使用 java。我正在尝试找到更通用的东西,但无法获得任何帮助,因为输入会有所不同。

一些示例输入:

This time is  Apr.19,2021 Cheers

或者

19-04-2021 Cheers

或者

This time is  19-APR-2021

我已经看到一些适用于尾随垃圾字符的代码,但如果日期在字符串之间并且它是否因不同格式而异,则找不到任何内容。

标签: javastringdate

解决方案


我们可以String#replaceAll在这里使用正则表达式单行方法:

String[] inputs = new String[] {
    "This time is  Apr.19,2021 Cheers",
    "19-04-2021 Cheers",
    "This time is  19-APR-2021",
    "Hello 2021-19-Apr World"
};
for (String input : inputs) {
    String date = input.replaceAll(".*(?<!\\S)(\\S*\\b\\d{4}\\b\\S*).*", "$1");
    System.out.println(date);
}

这打印:

Apr.19,2021
19-04-2021
19-APR-2021
2021-19-Apr

推荐阅读