使用Regex删除字符串末尾的所有零

时间:2016-07-07 14:28:33

标签: .net regex string

只有当字符串中包含,时,才必须在字符串末尾删除零。我可以使用Regex完成以下所有操作。 所以

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

5 个答案:

答案 0 :(得分:1)

使用此正则表达式进行搜索:

(,\d*?)0+\b

并将其替换为:

$1

IdeOne Code demo

RegExStrorm Demo - 点击"Context"标签查看结果

RegEx101 Demo

答案 1 :(得分:1)

请记住, RegEx 用于测试模式。它将返回true或false,而不是对字符串本身执行任何更改。

如果要搜索字符串末尾的字符,可以使用$符号构建正则表达式

enter image description here

如果要测试此实时

,请使用this tool

因此,每次最后有0时,此RegEx将返回 true false 否则

0$

现在,如果你需要删除那个零,你需要执行TRIM

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

注意TrimEnd函数中的引号。这是因为此方法需要char而不是字符串。

问候! 杆

答案 2 :(得分: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方法显示...."

答案 3 :(得分:0)

     String line = "120,90";


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

删除任何' 0'从字符串表达式的结尾开始。将所有0替换为字符串末尾的空格,直到字符串中的第一个非0字符。

答案 4 :(得分:0)

要在 Javascript 中执行此操作,您可以执行以下操作:

'0.000015000000'.replaceAll(/0*$/g, "") 

返回“0.000015”