-1

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

"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 。IE2013-10-25 13:15:14.0 should be 2013-10-25 13:15:14

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

4

5 回答 5

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演示

于 2013-10-08T10:14:56.253 回答
1

您可以使用:

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

.0如果后面跟着一个空字符串,这将替换为#

于 2013-10-08T10:01:14.000 回答
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);
       }
   }
于 2013-10-08T10:07:59.997 回答
0

.0当出现在#字符串之前或结尾时,这将删除(通过替换为空白) :

str = str.replaceAll("\\.0(?=#|$)", "");
于 2013-10-08T10:05:37.137 回答
0

尝试这个

str = str.replaceAll("(\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2})\\.\\d+", "$1");
于 2013-10-08T10:07:05.743 回答