Java正则表达式删除虚拟时间戳

时间:2013-02-04 18:40:49

标签: java regex

我想知道正则表达式将最有效地实现以下目的:

在日期和时间戳字符串中,如果它只是零,我想删除时间戳。但问题是时间戳可以有多种格式。例如:

2013-02-04 00:00:00
2013-02-04 00:00:00.0
2013-02-04 00:00 AM
2013-02-04 00:00 PM

由于

1 个答案:

答案 0 :(得分:2)

对于每一行:

line.replaceAll("(00:?)+(.0)?\s*([AP]M)", "");

(              // start time group
00             // strange timestamp symbol
:?             // allow ':'
)+             // strange group can be repeated more than one time
(.0)?          // if ms was specified
\s*            // allow spaces before AM,PM
(              // AM, PM group
[AP]           // A or P letter
M              // M
)?             // AP, PM group can not exists