我有一个看起来像这样的字符串:
"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
这可能是什么样的正则表达式..
答案 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
答案 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);
}
}