C# 删除非数字、非小数、重复小数

C# 删除非数字、非小数、重复小数,c#,regex,C#,Regex,我正在使用以下方法删除所有非数字和非十进制值: Regex.Replace("A1B2C3.D4E5F6.G7H8I9", @"[^-?\d+\.]", ""); 输出:123.456.789 问题是重复小数。我需要删除除第一个小数点以外的所有小数点 因此,输出变为:123.456789 我找到了模式“\。(?=.*\)”,但它输出123456.789。它是最后一个小数点而不是第一个小数点 有人能将这两种模式组合成一种模式,同时删除第一个小数后的重复小数吗?Ty您可以通过更换以下部件来更换除第

我正在使用以下方法删除所有非数字和非十进制值:

Regex.Replace("A1B2C3.D4E5F6.G7H8I9", @"[^-?\d+\.]", "");
输出:123.456.789

问题是重复小数。我需要删除除第一个小数点以外的所有小数点

因此,输出变为:123.456789

我找到了模式
“\。(?=.*\)”
,但它输出123456.789。它是最后一个小数点而不是第一个小数点


有人能将这两种模式组合成一种模式,同时删除第一个小数后的重复小数吗?Ty

您可以通过更换以下部件来更换除第一个
以外的所有部件:

(?<=\.[^.]*)\.

(?您可以进行正则表达式比较,然后按小数位拆分字符串

        string newval = Regex.Replace("A1B2C3.D4E5F6.G7H8I9", @"[^-?\d+\.]", "");
        string[] tempsplit = newval.Split('.');
然后在tempslit[0]和tempslit[1]之间加一个“.”,然后再加上数组中的其余字符串,将它们重新连接在一起

        string newval = Regex.Replace("A1B2C3.D4E5F6.G7H8I9", @"[^-?\d+\.]", "");
        string[] tempsplit = newval.Split('.');