我怎样才能找到像";{{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"
您可以使用正则表达式。
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]+"}}";
你的问题根本不清楚