regex.replace c# 变音符号

regex.replace c# diacritics

我正在尝试用变音符号替换字符串,但没有成功。 我需要用我自己的 table 替换例如“Ю”和“ю”到 "yu",“Б”和“б”到 "b" 等等。 我有一个这样的代码,它不起作用:

case "LastRUEN":
                if (csentry["LAST"].IsPresent)
                {
                    string FIELD_RU = csentry["LAST"].Value;
                    string FIELD_EN;
                    FIELD_EN = Regex.Replace(FIELD_RU, "[Аа]", "a");
                    FIELD_EN = Regex.Replace(FIELD_RU, "[Бб]", "b");
                    FIELD_EN = Regex.Replace(FIELD_RU, "[Вв]", "v");
                    FIELD_EN = Regex.Replace(FIELD_RU, "[Гг]", "h");
                    FIELD_EN = Regex.Replace(FIELD_RU, "[Ґґ]", "g");
                    FIELD_EN = Regex.Replace(FIELD_RU, "[Дд]", "d");
                    FIELD_EN = Regex.Replace(FIELD_RU, "[Ее]", "e");
                    mventry["lastNameEN"].Value = FIELD_EN;
}
break;

任何人都可以帮助解决问题吗? 也许对我的情况使用一种方法会更好? 谢谢!

这应该会更好,因为 Replace 调用的结果将是下一个操作的输入。

case "LastRUEN":
            if (csentry["LAST"].IsPresent)
            {
                string FIELD_RU = csentry["LAST"].Value;
                string FIELD_EN;
                FIELD_EN = Regex.Replace(FIELD_RU, "[Аа]", "a");
                FIELD_EN = Regex.Replace(FIELD_EN , "[Бб]", "b");
                FIELD_EN = Regex.Replace(FIELD_EN , "[Вв]", "v");
                FIELD_EN = Regex.Replace(FIELD_EN , "[Гг]", "h");
                FIELD_EN = Regex.Replace(FIELD_EN , "[Ґґ]", "g");
                FIELD_EN = Regex.Replace(FIELD_EN , "[Дд]", "d");
                FIELD_EN = Regex.Replace(FIELD_EN , "[Ее]", "e");
                mventry["lastNameEN"].Value = FIELD_EN;
}
break;

当然,您应该将这些操作移到一个单独的方法中。

编辑:Replace Multiple Characters in a String 合并多个调用很有趣。