Есть ли способ проверить, есть ли текст в кириллице или латинском языке с использованием С#?

Есть ли способ проверить, находится ли текст в кириллице или латинском языке с помощью С#?

Ответы

Ответ 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;
}