如果字符串中有,
字符,我必须在字符串末尾删除零。我可以使用正则表达式完成以下任何操作。 所以使用正则表达式删除字符串中的所有零字符
123,90 -> 123,9
123,00 -> 123,
123,0 -> 123,
123,0090 ->123,009
00,34-> 00,34
ABC -> ABC
如果字符串中有,
字符,我必须在字符串末尾删除零。我可以使用正则表达式完成以下任何操作。 所以使用正则表达式删除字符串中的所有零字符
123,90 -> 123,9
123,00 -> 123,
123,0 -> 123,
123,0090 ->123,009
00,34-> 00,34
ABC -> ABC
嘿anu。这是完美的。但是如何调整这个表达式以从开始删除也。 00123,2500 - > 123,25 – user3182464
[在这种情况下,使用'\ b0 *(\ d *,\ d *?)0+ \ b'正则表达式搜索](https://regex101.com/r/vH2cG4/3 ) – anubhava
感谢Anubhava。这工作。 – user3182464
看来,如果你使用,
作为数小数的分隔符。所以,你可以使用double.TryParse
和double.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
方法被揭示....”。
String line = "120,90";
String newLine = line.replaceAll("0*$", "");
//120,9
除去从端任何“0”开始的字符串表达式。用字符串末尾的空格替换所有的0,直到字符串中的第一个非0字符。
记得比RegEx用于测试的模式。它将返回true或false,而不是对字符串本身进行任何更改。
如果你想在一个字符串的结尾搜索字符,你可以使用$符号来构建你的正则表达式
使用this tool如果你想测试这个活
所以,此RegEx将返回true每次您在末尾有0时,false否则
01现在,如果你需要删除是零,您需要将TrimEnd函数内的报价执行TRIM
"129,0".TrimEnd('0')
注意。这是因为这个方法需要一个char而不是一个字符串。
问候! Rod
也许,'s.Contains(“,”)? s.TrimEnd('0'):s' –