java - 从带有垃圾数据的字符串中删除日期 - Java
问题描述
我需要知道是否有任何方法可以单独从文本中删除日期,如下面的使用 java。我正在尝试找到更通用的东西,但无法获得任何帮助,因为输入会有所不同。
一些示例输入:
This time is Apr.19,2021 Cheers
或者
19-04-2021 Cheers
或者
This time is 19-APR-2021
我已经看到一些适用于尾随垃圾字符的代码,但如果日期在字符串之间并且它是否因不同格式而异,则找不到任何内容。
解决方案
我们可以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
推荐阅读
- java - jar 文件无法读取 sqlite 数据库文件
- python - 在 python 中的网格上创建具有法线的曲面点
- apache-spark - 如何确定 Spark 中的存储桶数量
- reactjs - Office React Fabric 事件已声明但从未使用过 演示代码错误
- inno-setup - 如何将文本添加到按钮上方的 Inno Setup 斜线?
- ios - 如何访问 UITableView 中每一行的照片相册
- sql - 用于在值之间进行插值的 SQL 查询
- linear-programming - 如何将ampl文件转换为cplex?
- javascript - Mongo 查询不返回任何内容
- docker - 从外部使用 docker/singularity 映像内部的 gcc 编译器进行编译