我有一个字符串:
"You have just received {{PowerUpName}} from {{PlayerName}}"
然后我收到一组参数(采用JSON格式):
{"PowerUpName":"Super Boost","PlayerName":"John"}
我正在尝试解决如何用参数替换双括号内的单词,即{{PowerUpName}}。我想我需要使用正则表达式,但我不知道表达式应该是什么。我正在使用C#进行编码(并且不能使用LINQ)。
非常感谢任何帮助。
答案 0 :(得分:2)
如果字符“您刚从{{PowerUpName}}
收到{{PlayerName}}
”字符串始终相同,则不需要regex
。
您只需对String.Replace
中的每个参数使用JSON
方法。
答案 1 :(得分:1)
如果要替换{{
和}}
符号中的任何字词,则不需要LINQ:
// Input string
string str = "You have just received {{PowerUpName}} from {{PlayerName}}";
// Initializing sample dictionary object
var obj = new Dictionary<string,string>();
// Filling it out
obj.Add("PowerUpName", "Super Boost");
obj.Add("PlayerName", "John");
// Replacing the values with those in the dictionary
string output = Regex.Replace(str, "(?<=\\{\\{)(.*?)(?=\\}\\})", match => obj[match.Groups[1].Value]);
// Display result
Console.WriteLine(output);
结果:
You have just received {{Super Boost}} from {{John}}
请参阅sample program。
答案 2 :(得分:0)
如果括号正确匹配且没有嵌套括号,则可以执行此操作
var obj = {"PowerUpName":"Super Boost","PlayerName":"John"};
Regex.Replace(input, @"(?<=\{\{.*?(?=\}\})", delegate(match){
return obj[match];
});