gpt4 book ai didi

c# - 替换包含文件中随机数的字符串

转载 作者:太空宇宙 更新时间:2023-11-03 23:02:51 26 4
gpt4 key购买 nike

我正在寻找有效替换包含数字的字符串的代码。但是,数字可以是 0.502.20 之间或介于两者之间,增量为 2。因此 0.500.52, 0.62....等

为了更好地解释,我的程序正在替换配置(文本)文件中的行。这是我如何将它用于程序其他部分的示例。由于它链接到轨迹栏控件,这意味着使用单个选定值搜索数百个不同的值,这当然是非常低效的。我只是在寻找一种更有效的方法来替换值。这是前面的示例,它插入了 3 个可能值之一:

ReWriteFile = ReWriteFile
.Replace(" clipmapScale:r=0.5", " clipmapScale:r=1.5")
.Replace(" clipmapScale:r=1", " clipmapScale:r=1.5");

这个控件只有 3 个可能的值(0.5、1.0、1.5),但我的另一个控件有 85 个可能的值。

如果有一种方法可以从字符串中获取数字并替换它们并写回它们。我对 C# 不是很流利,因为我刚开始学习它(这里是 Uni 学生)。

也许可以将其捕获为具有指定字符(如 [0-9,.,])的字符串。

最佳答案

如果您只想用一个新数字替换字符串中的每个十进制数字(不计算找到的值),那么它是一个简单的 Regex 表达式,只需调用一次 Replace

string newValue = "1.5";
// Matches any number followed by a dot and then another number
string pattern = @"\d+\.\d+";
string search = "..... clipmapScale:r=0.5 clipmapScale:r=1.0 .....";
var m = Regex.Replace(search, pattern, newValue);
Console.WriteLine(m);

当然,如果你想将匹配的部分限制为只有 clipmapScale 文本之后的数字你可以更改为

string newValue = "clipmapScale:r=1.5";
string pattern = @"clipmapScale:r=\d+\.\d+";

关于c# - 替换包含文件中随机数的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42466738/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com