2016-07-07 95 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

相关问题