C# - 修改字符串

时间:2015-11-07 20:56:45

标签: c# double

我想编辑双值,这些值是字符串中具有大变量类型的部分:

" 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"

1 个答案:

答案 0 :(得分:0)

最简单的方法,通过使用正则表达式提取浮点值并通过float / decimal / 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());
        }

正则表达式为:https://stackoverflow.com/a/2293793/2084262