比如,我现在有一个文档,里面有一些这样的句子“我/r是/v学/v计算机/的/u”。我要实现的具体功能是,我要建造一个数据库,属性分别是“词”,“词性”,“出现次数”。那我现在要做的是依次读入用“/”分割开的词和“/”后这个词的词性,然后把他们存储在数据库中。请问我该用什么样的方法读入这个词和词性。因为我处理的是几M的文本文件,所以我想要的方法是一次性处理完整个文本。
请大家帮帮忙,我试了两天了,我依然毫无头绪,即使给我个提示也好,这里非常感谢了!!!!

解决方案 »

  1.   

    这样可以吗?用正则取出词和它对应的词性,然后分别存数组,全部取出后,一次性写入数据库,没处理过几M的文本,不知道是否可行,仅供参考MatchCollection mc = Regex.Matches(yourStr, @"(?<word>[\u4e00-\u9fa5]+?)/(?<cha>[a-z]*)");
    foreach (Match m in mc)
    {
         m.Groups["word"].Value;         //词
         m.Groups["cha"].Value;          //词性
    }
      

  2.   

    用正则或者split都可以吧?
    还可以读的时候按行读取。
      

  3.   

    楼上的朋友们,我对正则还比较生疏,我想用split处理或其它的方法,能不能给点提示,但是如果用split处理的话,如果以“/”为分隔符,那么上一个词的词性就会和下一个词联系在一起,如下所示:

    r是
    v学
    v就成这样的了,那我该怎么处理呢,谢谢!!!
      

  4.   

    for exmaple:String str = "我/r是/v学/v计算机/的/u";
                MatchCollection mc = Regex.Matches(str, @"(?<word>[\u4e00-\u9fa5]+?)/(?<cha>[a-z]*)");
                foreach (Match m in mc)
                {
                    Console .WriteLine (m.Groups["word"].Value+"\t"+m.Groups["cha"].Value);
                }输出:
    我 r
    是 v
    学 v
    计算机
    的 u
      

  5.   

    don't forget..using System.Text.RegularExpressions;
      

  6.   

    非常感谢lxcnn(过客)和liujia_0421(SnowLover)两位朋友,lxcnn(过客),真的不好意思,我不知道给分只能操作一次,下次弥补吧。非常感谢你的帮助。