如何检测输入字符串字符语言与内建的.net功能



我想检测我的输入字符串中是否有Arabic字符。
比如像这样的代码:

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

目前正在使用映射,但我想迁移到一些c#内置的功能。

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..)。并进行数值比较。

最新更新