我想知道正则表达式将最有效地实现以下目的:
在日期和时间戳字符串中,如果它只是零,我想删除时间戳。但问题是时间戳可以有多种格式。例如:
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
由于
答案 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