有没有办法用C#检查文本是西里尔语还是拉丁语?
有没有办法用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
\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,您想要这种行为吗?是的,您是对的,我必须以我的方式将所有字符放入字符串模式中。您的解决方案很好。