簡體   English   中英

正則表達式模式,用於從包含由定界符分隔的日期的字符串中刪除.0

[英]Regex pattern for removing .0 from a string containing date separated by Delimiter

我有一個看起來像這樣的字符串:

"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

可能的正則表達式模式是什么。

如果那是您的字符串,並且里面沒有其他數據,則可以使用簡單的替換; 無需任何正則表達式:

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

您可以使用:

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

如果后跟#則它將用空字符串替換.0

當出現在#或字符串末尾時,將刪除(用空白代替) .0

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

嘗試這個

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

沒有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);
       }
   }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM