如何在java中使用正则表达式从字符串中获取日期?
这是我的密码:如何在java中使用正则表达式从字符串中获取日期?,java,regex,Java,Regex,这是我的密码: String t1="postby <span title=\"2011-4-5 17:22\">yesterday 17:22</span>"; String t2="postby 2010-11-12 10:02"; String t1=“昨天17:22发布”; String t2=“postby 2010-11-12 10:02”; 我想使用一个正则表达式从t1或t2获取2011-4-5 17:22,2010-11-12 10:
String t1="postby <span title=\"2011-4-5 17:22\">yesterday 17:22</span>";
String t2="postby 2010-11-12 10:02";
String t1=“昨天17:22发布”;
String t2=“postby 2010-11-12 10:02”;
我想使用一个正则表达式从t1
或t2
获取2011-4-5 17:22
,2010-11-12 10:02
(输入t1
或t2
,输出日期)
怎么办?(请给我一些示例代码,谢谢)
请注意:
- 您必须在字符串中转义斜杠:
string pattern=“\\d{4}-\\d{1,2}…”
表示“数字”(0-9)\d
表示“x次”{x}
表示“至少x次,但不超过y次”{x,y}
参考资料:您允许多少错误匹配?波佐模式
\d{4}-\d{1,2}-\d{1,2} \d{2}:\d{2}
但这与以下可疑情况相符:0000-1-1 00:00
(没有零年)、2011-0-1 00:00
(没有零月)、2011-13-1 00:00
(没有13个月)、2011-1-32 00:00
(没有32个月)2011-12-31 24:00
(最多有一闰秒)和2011-12-3123:61
(最多有一次飞跃)
您希望解析的日期时间几乎是,但不完全是。如果可以,请使用该国际标准格式
在我的一个程序(使用grep
的shell脚本)中,我使用了以下正则表达式:
^20[0-9][0-9]-[01][0-9]-[0-3][0-9]T[0-9][0-9]:[0-9][0-9]:[0-9][0-9]UTC$
我有一个额外的T
和UTC
要处理,只对本世纪的日期感兴趣,并以秒精度解析。我知道我对小时和分钟值没有太多限制,可能是因为传统的C/C++转换可以处理它们
因此,我想您可以使用以下内容:
\d{4}-[01]\d-[0-3]\d [0-2]\d:[0-6]\d
杰出的为了更安全,可以在开头和结尾添加\b。
\d{4}-[01]\d-[0-3]\d [0-2]\d:[0-6]\d