Есть ли способ проверить, находится ли текст в кириллице или латинском языке с помощью С#?
Есть ли способ проверить, есть ли текст в кириллице или латинском языке с использованием С#?
Ответ 1
Используйте Regex и проверьте \p{IsCyrillic}
, например:
if (Regex.IsMatch(stringToCheck, @"\p{IsCyrillic}"))
{
// there is at least one cyrillic character in the string
}
Это верно для строки "abcабв", потому что она содержит по крайней мере один кириллический символ. Если вы хотите, чтобы он был ложным, если в строке нет символов кириллицы, используйте:
if (!Regex.IsMatch(stringToCheck, @"\P{IsCyrillic}"))
{
// there are only cyrillic characters in the string
}
Это было бы неверно для строки "abcабв", но верно для "абв".
Чтобы проверить, что содержит иксриллический блок или другие именованные блоки, посмотрите на http://msdn.microsoft.com/en-us/library/20bw873z.aspx#SupportedNamedBlocks
Ответ 2
Вот еще одно решение этой проблемы
public bool isCyrillic(string textInput)
{
bool rezultat=true;
string pattern = @"[абвгдѓежзѕијклљмнњопрстќуфхцчџш]";
char[] textArray = textInput.ToCharArray();
for (int i = 0; i < textArray.Length; i++)
{
if (!Regex.IsMatch(textArray[i].ToString(),pattern))
{
rezultat = false;
break;
}
}
return rezultat;
}