如何在Java中检查字符串是否包含日期?
如何检查字符串是否包含以下格式的日期:
2012年1月15日,星期日,美国东部标准时间晚上7:36
我正在使用的数据包含大量字符串。但是我要查找的字符串类型包含一个2或3个单词名称和一个日期。我正在检查日期以识别这些类型的字符串。
我已经找到了这种日期的simpleDateFormat。
String string1 = "Rahul Chowdhury Sunday, January 15, 2012 at 7:37pm EST";String string2 = "Aritra Sinha Nirmal Friday, April 1, 2016 at 10:16pm EDT";
SimpleDateFormat format = new SimpleDateFormat("EEEEE, MMM dd, yyyy 'at' hh:mmaa z");
但是我不知道如何进一步进行。
我猜测正则表达式可能有效,但是当月/日名称的长度不同时,我不知道如何实现。即“五月”比“十二月”短得多。
我想知道是否有使用正则表达式的解决方案或更简单的解决方案。
回答:
您可以先使用正则表达式检查日期是否存在:
\w+,\s+\w+\s+\d+\,\s+\d+\s+at\s+\d+:\d+(pm|am)\s+\w{3,4}
此正则表达式同时匹配
Rahul Chowdhury Sunday, January 15, 2012 at 7:37pm ESTAritra Sinha Nirmal Friday, April 1, 2016 at 10:16pm EDT
https://regex101.com/r/V0dAf8/2/
当您在文本中找到匹配项时,可以SimpleDateFormat
用来检查其格式是否正确。
String input = "Rahul Chowdhury Sunday, January 15, 2012 at 7:37pm EST";String regex = "(\\w+,\\s+\\w+\\s+\\d+\\,\\s+\\d+\\s+at\\s+\\d+:\\d+(pm|am)\\s+\\w{3,4})";
Matcher matcher = Pattern.compile(regex).matcher(input);
if (matcher.find()) {
System.out.println(matcher.group(1));
}
这将打印:
Sunday, January 15, 2012 at 7:37pm EST
以上是 如何在Java中检查字符串是否包含日期? 的全部内容, 来源链接: utcz.com/qa/422153.html