用于从包含由分隔符分隔的日期的字符串中删除.0的正则表达式模式

时间:2013-10-08 10:00:21

标签: java regex date

我有一个看起来像这样的字符串:

"2013-10-19 22:21:21#2013-10-23 16:17:19#2013-10-25 13:15:14.0#2013-10-19 08:11:34.0#2013-10-23 16:17:19#"

我需要从日期结束时删除.0。 即2013-10-25 13:15:14.0 should be 2013-10-25 13:15:14

这可能是什么样的正则表达式..

5 个答案:

答案 0 :(得分:2)

如果那是你的字符串,里面没有其他数据,你可以使用简单的替换;不需要任何正则表达式:

String str = "2013-10-19 22:21:21#2013-10-23 16:17:19#2013-10-25 13:15:14.0#2013-10-19 08:11:34.0#2013-10-23 16:17:19#";
String res = str.replace(".0", "");
System.out.println(res);

输出:

2013-10-19 22:21:21#2013-10-23 16:17:19#2013-10-25 13:15:14#2013-10-19 08:11:34#2013-10-23 16:17:19# - See more at: http://ideone.com/WrDbqS#sthash.iQsWV8gp.dpuf

ideone demo

答案 1 :(得分:1)

您可以使用:

str = str.replaceAll("\\.0(?=#)", "");

如果后跟.0

,则会将#替换为空字符串

答案 2 :(得分:0)

这会在.0之前或字符串结尾处显示时删除(通过替换为空白)#

str = str.replaceAll("\\.0(?=#|$)", "");

答案 3 :(得分:0)

试试这个

str = str.replaceAll("(\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2})\\.\\d+", "$1");

答案 4 :(得分:0)

如果没有regex,您可以执行以下操作。

 String str="2013-10-19 22:21:21#2013-10-23 16:17:19#2013-10-25 13:15:14.0#2013-10-19 08:11:34.0#2013-10-23 16:17:19#";
   String[] dates=str.split("#");
   for(String i:dates){
       if(i.lastIndexOf('0')==(i.length()-1)){
           System.out.println(i.replaceAll(".0",""));
       }else {
           System.out.println(i);
       }
   }