当前位置: 代码迷 >> .NET分析设计 >> 正则表达式瓜分中文
  详细解决方案

正则表达式瓜分中文

热度:9408   发布时间:2013-02-25 00:00:00.0
正则表达式分割中文
我想使用正则表达式中的Regex类中的Split方法来分割一句中文,就如将“洗衣机”分割为单独的字,在用将每个字赋值给数组,就如分割英语的话使用Regex.Split(input,"[^a-zA-Z0-9]+");
分割英文使:"[^a-zA-Z0-9]+";但不知分割中文使用什么正值表达式,求高手指教


------解决方案--------------------------------------------------------
你彻底混淆了一个基本概念,正则可不是用来理解含义的,所以它永远也不可能理解哪几个中文字可以成为一个中文词。正则只能用于定死了的格式,例如程序的if与while语句的区别是定死了的,或者例如英文单词——纯粹是空格分隔符区分的——这才用到正则。

如果你稍微学一点编辑技术就会知道,区分单字是最低级的功能。而要进行一定的语义分析,知道一个字跟前后字的关联,这就不是什么正则的范畴。
------解决方案--------------------------------------------------------
[\u4e00-\u9fa5]
------解决方案--------------------------------------------------------
C# code
string str="洗衣机";    string[] ss=Regex.Split(str,"([\\u4e00-\\u9fa5])");//正则解法    string[] tt=str.ToCharArray().Select(s=>s.ToString()).ToArray(); //方法二