gpt4 book ai didi

c# - 使用正则表达式将插值字符串转换为 string.Format

转载 作者:太空宇宙 更新时间:2023-11-03 21:08:42 25 4
gpt4 key购买 nike

我和我的同事使用不同版本的 VisualStudio。他使用了内插字符串,但我无法构建解决方案,不得不将它们全部转换为字符串格式。

现在我认为这可能是正则表达式的好练习。

那么如何转换这个:

$"alpha: {alphaID}, betaValue: {beta.Value}"

对此:

string.Format("alpha: {0}, betaValue: {1}", alphaID, beta.Value)

现在变量的数量可以变化(比如 1 - 20,但应该是通用的)

我想出了这个正则表达式来匹配第一个变量

\$.*?{(\w+)}

但我不知道如何重复美元符号后的部分,所以我可以重复结果。

最佳答案

Regex.Replace 有一个带有函数的重载,称为 MatchEvaluator。你可以这样使用它;

 var paramNumber = 0;     
var idNames = new List<string>();
myCSharpString = Regex.Replace(myCSharpString, match => {
// remember the id inside brackets;
idNames.Add(match.ToString());

// return "0", then "1", etc.
return (paramNumber++).ToString();
});

在此过程结束时,您的字符串 "this is {foo} not {bar}" 将被替换为 "this is {0} not {1}" 并且您将拥有一个包含 { "foo", "bar"} 的列表,您可以使用它来组装参数列表。

关于c# - 使用正则表达式将插值字符串转换为 string.Format,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39286392/

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