我怎样才能找到像";{{e3}}";在文本中,并用列表中的匹配数据替换它们

本文关键字:quot 列表 替换 数据 e3 文本 | 更新日期: 2023-09-27 18:01:09

我有一个名为effectBurn:的列表

[
    "",
    "60/80/100/120/140",
    "2.5",
    "30",
    "",
    "20/40/60/80/100",
    "0.08",
    "0.15"
],

我有一个包含"{{e1}}"的字符串。如何将{{e1}}转换为effectBurn[1],将"{e2}"转换为effectBurn[2],以及将e3、e4、。。?

例如:

"Spell effects: {{ e1 }}"

进入

"Spell effects: 60/80/100/120/140"

我怎样才能找到像";{{e3}}";在文本中,并用列表中的匹配数据替换它们

您可以使用正则表达式。

int index = 0;
string pattern = @"{{'s*e'd+'s*}}";
string result = Regex.Replace(text, pattern, m => effectBurn[++index]);

其中text是源字符串。

这就是我找到的解决方案:

string Replace(string s,List<string> list,List<Models.SpellVarsDto> vars) {
        for (int i = 0; i < list.Count; i++)
        {
            string s1 = "{{ e" + i.ToString() + " }}";
            if (s.Contains(s1))
            {
                string s2 = s.Substring(s.IndexOf(s1), s1.Length);
                s = s.Replace(s1, list[i]);
                spellDesc.Text = s;
                //MessageBox.Show(s + " " + s1 + " " + list[i]);
            }
            string s3 = "{{ a" + i.ToString() + " }}";
            if (s.Contains(s3))
            {
                foreach (Models.SpellVarsDto item in vars)
                {
                    if (item.key == "a" + i.ToString())
                    {
                        string s4 = s.Substring(s.IndexOf(s3), s3.Length);
                        s = s.Replace(s3, item.coeff[0].ToString());
                        spellDesc.Text = s;
                    }
                }
            }
        }
        return null;
    }

这个问题不明确。我将尝试解释最简单的C#代码,也许对您有所帮助。但我真的不知道你到底在问什么

如果你有一个变量,你想把effectBurn[1]-("60/80/100/120/140"(-放在里面,这很简单,不需要知道变量里面是什么:

string myVariable= "{{ e1 }}"; 
myVariable = effectBurn[1];

如果你想把effectBurn[1]放在{{}}个字符中,你可以这样做

myVariable ="{{"+ effectBurn[1]+"}}";

你的问题根本不清楚