簡體   English   中英

替換所有出現的組

[英]Replace all occurrences of group

我想替換字符串中所有出現的組。

String test = "###,##.##0.0########";
System.out.println(test);
test = test.replaceAll("\\.0(#)", "0");
System.out.println(test);

我試圖獲得的結果是###,##.##0.000000000基本上,我想替換所有尾隨.0 #符號。 我發現這是關於動態替換的,但我不能真正使它工作。

最佳解決方案不會考慮要替換的哈希數量(如果這樣可以清除任何混淆)。

#(?!.*\\.0)

你可以嘗試這個。替換為0參見演示。

https://regex101.com/r/yW3oJ9/12

您可以使用簡單的正則表達式來完成任務。

#(?=#*+$)

(?=#*+$) =一個正向前瞻 ,用於檢查在字符串$結尾之前有0個或更多#符號的任何# 編輯 :我現在使用占有量詞 *+來避免任何性能問題。

演示

IDEONE

String test = "###,##.##0.0###########################################";
test = test.replaceAll("#(?=#*+$)", "0");
System.out.println(test);

您可以將文本拆分為“0.0”並僅替換第二部分:

String[] splited = "###,##.##0.0########".split("0.0");
String finalString = splited[0] + "0.0" + splited[1].replaceAll("#","0");

暫無
暫無

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

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