Я пытаюсь заменить строки диакритикой, но не повезло. Мне нужно заменить, например, «Ю» и «ю» на «ю», «Б» и «б» на «б» и т. Д. С моей собственной таблицей. У меня есть такой код, который не работает:regex.replace C# diacritics
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;
Может кто-нибудь ЛФВЭ устранить неполадку? Возможно, было бы лучше использовать метод для моего дела? Спасибо!
Это не диакритика («акценты»), вы, по-видимому, пытаетесь транслитерировать кириллицу на латиницу. – Mat
Зачем вам регулярное выражение? Не можете ли вы просто использовать 'string.Replace()'? – Natrium
Вы продолжаете заменять на 'FIELD_RU', который не изменяется. Это означает, что 'FIELD_EN' будет содержать только последнюю замену. В любом случае, поскольку вы транслитерируете, вы, вероятно, захотите использовать char по char и построить транслитерированную строку на основе некоторого словаря, а не выполнять замену строк в любом случае. – Luaan