28

C# を使用して、テキストがキリル文字かラテン文字かを確認する方法はありますか?

4

3 に答える 3

49

正規表現を使用して を確認し\p{IsCyrillic}ます。次に例を示します。

if (Regex.IsMatch(stringToCheck, @"\p{IsCyrillic}"))
{
    // there is at least one cyrillic character in the string
}

文字列 "abcабв" には少なくとも 1 つのキリル文字が含まれているため、これは当てはまります。文字列にキリル以外の文字が含まれている場合に false にしたい場合は、次を使用します。

if (!Regex.IsMatch(stringToCheck, @"\P{IsCyrillic}"))
{
    // there are only cyrillic characters in the string
}

これは文字列 "abcабв" では false ですが、"абв" では true です。

IsCyrillic 名前付きブロックまたはその他の名前付きブロックに何が含まれているかを確認するには、このhttp://msdn.microsoft.com/en-us/library/20bw873z.aspx#SupportedNamedBlocksを参照してください。

于 2012-07-10T13:49:50.980 に答える
-4

この問題の別の解決策は次のとおりです

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;
}
于 2012-07-10T14:39:19.083 に答える