如何在字典词典中进行正则表达式替换?

时间:2019-04-09 02:42:10

标签: c# dictionary

我是编程的新手,正在寻求帮助。我正在用C#编写一个程序,将文本从语言“ x”(例如说西班牙语)翻译成英语。我需要使用以下词典词典:

var PLANG = new Dictionary<string, Dictionary<int, string>>();

PLANG["en"] = new Dictionary<int, string>()
{
    { 11, "Name" },
    { 20, "Surname (" }
};

PLANG["es"] = new Dictionary<int, string>()
{
    { 11, "Nombre" },
    { 20, "Apellido (" }
};

要翻译文本,我需要替换相应键中的每个值。我正在尝试此代码,但无法正常工作:

foreach (int Indice in PLANG["es"].Keys)
{
    TextToTranslate = Regex.Replace(TextToTranslate, PLANG["es"][Indice], PLANG["en"][Indice]);
}

这不起作用,我也不知道为什么。该程序可以很好地编译,但是当我执行它进行调试时,我得到了“ System.ArgumentException”。 编辑:问题发生在字典中带括号的行中,键20。

1 个答案:

答案 0 :(得分:0)

我通过添加Regex.Escape解决了该问题:

foreach (int Indice in PLANG["es"].Keys)
{
    TextToTranslate = Regex.Replace(TextToTranslate, Regex.Escape(PLANG["es"][Indice]), PLANG["en"][Indice]);
}