我有一个看起来像这样的字符串:
"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
这可能是什么正则表达式模式..
如果那是你的字符串并且里面没有其他数据,你可以使用简单的替换;不需要任何正则表达式:
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
您可以使用:
str = str.replaceAll("\\.0(?=#)", "");
.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);
}
}
.0
当出现在#
字符串之前或结尾时,这将删除(通过替换为空白) :
str = str.replaceAll("\\.0(?=#|$)", "");
尝试这个
str = str.replaceAll("(\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2})\\.\\d+", "$1");