2016-07-07 58 views
1

如果字符串中有,字符,我必須在字符串末尾刪除零。我可以使用正則表達式完成以下任何操作。 所以使用正則表達式刪除字符串中的所有零字符

123,90 -> 123,9 
123,00 -> 123, 
123,0 -> 123, 
123,0090 ->123,009 
00,34-> 00,34 
ABC -> ABC 
+2

也許,'s.Contains(「,」)? s.TrimEnd('0'):s' –

回答

1

搜索使用此正則表達式:

(,\d*?)0+\b 

並替換:

$1 

IdeOne Code demo

RegExStrorm Demo - 點擊"Context"選項卡上看到的結果

RegEx101 Demo

+0

嘿anu。這是完美的。但是如何調整這個表達式以從開始刪除也。 00123,2500 - > 123,25 – user3182464

+0

[在這種情況下,使用'\ b0 *(\ d *,\ d *?)0+ \ b'正則表達式搜索](https://regex101.com/r/vH2cG4/3 ) – anubhava

+0

感謝Anubhava。這工作。 – user3182464

0

看來,如果你使用,作爲數小數的分隔符。所以,你可以使用double.TryParsedouble.ToString以獲得期望的結果:

string str = "123,0090"; 
double d; 
if (double.TryParse(str, out d)) 
    str = d.ToString(); 

如果你想確保使用逗號作爲小數點分隔符:

if (double.TryParse(str, NumberStyles.Any, new CultureInfo("de-DE"), out d)) 
    str = d.ToString(); 

如果你會使用decimal.TryParse,而不是數量尾隨的零將被保留,這在這種情況下是不希望的。 Msdn「縮放因子也保留任何尾隨零在一個十進制數....可能受ToString方法被揭示....」。

0
 String line = "120,90"; 


    String newLine = line.replaceAll("0*$", ""); 
//120,9 

除去從端任何「0」開始的字符串表達式。用字符串末尾的空格替換所有的0,直到字符串中的第一個非0字符。

1

記得比RegEx用於測試的模式。它將返回true或false,而不是對字符串本身進行任何更改。

如果你想在一個字符串的結尾搜索字符,你可以使用$符號來構建你的正則表達式

enter image description here

使用this tool如果你想測試這個活

所以,此RegEx將返回true每次您在末尾有0時,false否則

01現在

,如果你需要刪除是零,您需要將TrimEnd函數內的報價執行TRIM

"129,0".TrimEnd('0') 

注意。這是因爲這個方法需要一個char而不是一個字符串。

問候! Rod

相關問題