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"
最简单的方法是使用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