有没有办法用C#检查文本是西里尔语还是拉丁语?

有没有办法用C#检查文本是西里尔语还是拉丁语?,c#,C#,有没有办法用C#检查文本是西里尔文还是拉丁文?使用正则表达式并检查\p{iscrylic},例如: if (Regex.IsMatch(stringToCheck, @"\p{IsCyrillic}")) { // there is at least one cyrillic character in the string } 这对于字符串“abcабббббб”是正确的,因为它至少包含一个西里尔字符。如果要在字符串中包含非西里尔字符时将其设置为false,请使用: if (!Rege

有没有办法用C#检查文本是西里尔文还是拉丁文?

使用正则表达式并检查
\p{iscrylic}
,例如:

if (Regex.IsMatch(stringToCheck, @"\p{IsCyrillic}"))
{
    // there is at least one cyrillic character in the string
}
这对于字符串“abcабббббб”是正确的,因为它至少包含一个西里尔字符。如果要在字符串中包含非西里尔字符时将其设置为false,请使用:

if (!Regex.IsMatch(stringToCheck, @"\P{IsCyrillic}"))
{
    // there are only cyrillic characters in the string
}
这对于字符串“abcббббббб”是错误的,但对于“бббббб


要检查IsCyrical命名块或其他命名块包含的内容,请查看此

这里是解决此问题的另一个解决方案

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;
}
public bool iscrymeric(字符串文本输入)
{
bool-rezultat=true;
串模式=@“[бббеззззбљљњббдеззббљњб107;
char[]textary=textInput.ToCharArray();
for(int i=0;i
这个怎么样

string pattern = @"\p{IsCyrillic}";
if ( Regex.Matches(textInput, pattern).Count > 0)
{
    // contains cyrillics' characters.
}
如果要检查是否包含多于x个字符的西里尔字符,请更改右侧的数值

我们的系统接收到的垃圾邮件中,西里尔人的字符约占总字符数的30%

全文;因此,无法决定是100%还是0%

您真的不想这样做。单独检查每个字符在这里不是一个好主意。如果要确保字符串的每个字符都是西里尔字母,可以使用
!Regex.IsMatch(textInput,@“\P{iscyrical}”)
(注意大写字母P,它否定了检查)。但是如果有像“!,”等数字或字符呢。?您的检查将返回false,您想要这种行为吗?是的,您是对的,我必须以我的方式将所有字符放入字符串模式中。您的解决方案很好。