如何使用.NETfunction构建检测输入字符串字符语言?

我想检测我的输入字符串是否包含Arabic字符。
也许有些代码如下:

 string str = "سS"; str[0].IsArabicCharacter(); //true str[1].IsArabicCharacter(); //false 

目前正在使用映射,但我想迁移到一些C#内置function。

 ArabicChars = "ساینبتسیکبدثصکبثحصخبدوزطئظضچج"; string str = "ل"; if(ArabicChars.Contains(str[0]) return true; else return false; 

你将得到的最好的是各种RegEx unicode块字符类: \p{name}

 Regex.IsMatch(str[0], @"\p{IsThai}"); Regex.IsMatch(str[1], @"\p{IsArabic}"); 

MSDN参考页面:

  • Unicode类别或Unicode块
  • 支持的命名Unicode块列表

获取字符的Unicode值并检查它属于哪个图表:

http://www.unicode.org/charts/

查看unicode Blocks.txt文件并确定要包含哪些范围为阿拉伯语或波斯语(U + 0600..06FF是一个明显的开始)并进行数字比较。