C#-修改字符串中的双精度

本文关键字:双精度 字符串 修改 C#- | 更新日期: 2023-09-27 18:21:05

我想编辑字符串中类型变化较大的部分的双值:

"1/(2.342/x)"

"x^3.45"

"123*x"

等等

关于我如何只能修改它们,有什么好的例子吗?因为我想把它们换成一个新的随机替身。E.g

"1/(2.342/x)"-->"1/(23.2/x)"

"x^3.45"-->"x^0.2"

"123*x"---"3.23*x"

C#-修改字符串中的双精度

最简单的方法是使用regex提取浮动值,并通过float/dectal/double或您需要的任何数据类型进行转换。

修改后,您可以再次使用相同的正则表达式替换字符串。

        Regex regex = new Regex(@"[1-9][0-9]*'.?[0-9]*([Ee][+-]?[0-9]+)?");
        string testString ="1/(2.342/x) * x^3.45";
        MatchCollection collection = regex.Matches(testString);
        foreach(Match item in collection)
        {
            double extract =Convert.ToDouble(item.Value);
            //change your decimal here...
            testString = testString.Replace(item.Value, extract.ToString());
        }

regex信用额度:https://stackoverflow.com/a/2293793/2084262