我截取出来的字符串是这样的
2001/06--2006/09湖南中南林学院计算机科学与技术大专....... (中间无空格,专业后面可能还有字)
描述:
1.前面的日期2001/06--2006/09 能否截取下来, 而且变成DATATIME型,或YY-MM字符
2.后面的学校能否弄出来呢  还有专业,学历(后面还有其他的字,切不管他)我想不出来什么好办法,也许用正则,可是我太菜了
希望各位高手帮个忙,如果可以,我单开贴,一次100!!  呵呵,因为着急,请理解,最后谢谢大家了~~中秋快乐~~

解决方案 »

  1.   

    2001/06--2006/09湖南中南林学院计算机科学与技术大专....... 可以用substring() 方法,或 indexof();
      

  2.   

    2001/06--2006/09湖南中南林学院计算机科学与技术大专....... 可以用substring() 方法,或 indexof();如:string s = "2001/06--2006/09湖南中南林学院计算机科学与技术大专";
     string str = s.substring(1,16); 此时得到的就是你要的日期了!
      

  3.   

    日期和学历应该比较容易取到,
    日期格式的字数是固定的,学历是几个固定的名词,日期可以直接SubString,学历用Indexof
    ,再研究学校和专业之间的规律吧,感觉这个比较麻烦
    看高手的解决方法
      

  4.   

    这是没有规律可循的只有一个办法,生产出这个字符串的人是个stupid,你先骂他一顿,然后让重新设计
      

  5.   

    湖南中南林学院计算机科学与技术大专....... 
    把专业和学校分开,本人的想法是需要存储专业的名称,有存储的专业的名称来判断字段中的专业是什么,然后取出来,相应的在取出专业的时候获得该专业所在的Indexof的位置,然后分割出来学校名称感觉这样的效率太低
      

  6.   

    string Str = "2001/06--2006/09湖南中南林学院计算机科学与技术大专.......";
            string[] StrArray = Str.Split('/');
            DateTime Dt1 = DateTime.ParseExact(StrArray[0] + StrArray[1].Substring(0, 2), "yyyyMM", System.Globalization.CultureInfo.InvariantCulture);
            DateTime Dt2 = DateTime.ParseExact(StrArray[1].Substring(4, 4) + StrArray[2].Substring(0, 2), "yyyyMM", System.Globalization.CultureInfo.InvariantCulture);
            this.Response.Write(Dt1.ToString("yyyy/MM") + "--" + Dt2.ToString("yyyy/MM"));
      

  7.   

    hehe~~也不错  谢谢~
    等待高手解决了~
      

  8.   

    只能用死方法啦前面 截时间没什么好说的,直接取多少位,然后转换成时间就可以了本科 什么也好取,肯定是2个字,直接拿掉就可以了之后的字符则采取
    string adbStr = "玉林师院计算机科学与技术";
    int length = adbStr.Length;
    int nameLength;//记录学院名称长度的
    for(int i=0;i<length;i++)
    {
    string ceshi = adbStr.Substring(i,length);
    switch(ceshi)
    {
    case "计算机科学与技术":
       nameLength = i;
       break;
    -
    -把学科名称列举出来比对
    -
    -
    }
    }
    这样就可以实现取学校名称了  方法笨了点,但能实现
      

  9.   

    所以用 case 循环比对,  因专业 名称 就那么几个,而且各个学校一样,拿去比对,对上了就是 ,然后就跳出这个 循环就可以了
      

  10.   

    string str = "2001/06--2006/09湖南中南林学院计算机科学与技术大专";
            Match m = Regex.Match(str, @"^(\d{4}/\d{2}--\d{4}/\d{2})(\w*?)(院|大学)(\w*?)(大专|本科)", RegexOptions.Multiline);
            if (m.Success)
            {
                Response.Write(m.Groups[1].Value.ToString()+"<br/>");
                Response.Write(m.Groups[2].Value.ToString()+m.Groups[3].Value.ToString()+"<br/>");
                Response.Write(m.Groups[4].Value.ToString() + "<br/>");
                Response.Write(m.Groups[5].Value.ToString());
            }
      

  11.   

    bengo420() 
    ----------
    谢谢老兄,你这个代码倒是不难理解,呵呵,辛苦~~谢谢
      

  12.   

    bengo420() 
    所以用 case 循环比对,  因专业 名称 就那么几个,而且各个学校一样,拿去比对,对上了就是 ,然后就跳出这个 循环就可以了
    -------------------------------------------------------
    专业太多了,谁知道他写什么专业,那样的话用case... 还不如连库里  再回来的好
    谢谢大家哈哈~~
      

  13.   

    string []aa={你要的关键字}
    for(int i=0;i<aa.length();i++){string gsdsd=substring(0,indexof(aa[i]))
    if (gsdsd!=null&&gsdsd.length>0)
    return;
    }
      

  14.   

    tds__609(学历代表过去、能力代表现在、学习力代表未来) ( ) string str = "2001/06--2006/09湖南中南林学院计算机科学与技术大专";
            Match m = Regex.Match(str, @"^(\d{4}/\d{2}--\d{4}/\d{2})(\w*?)(院|大学)(\w*?)(大专|本科)", RegexOptions.Multiline);
            if (m.Success)
            {
                Response.Write(m.Groups[1].Value.ToString()+"<br/>");
                Response.Write(m.Groups[2].Value.ToString()+m.Groups[3].Value.ToString()+"<br/>");
                Response.Write(m.Groups[4].Value.ToString() + "<br/>");
                Response.Write(m.Groups[5].Value.ToString());
            }
    -----------------这个是高手,似乎已经实现了
      

  15.   

    yuan74521940(飞翔中的菜鸟) 
    ---------------------------------
    是呀,所以现在只能考虑大多数情况了,你说的这个个别的,除非程序已经热工智能来判断了哈哈
    谢谢老兄
      

  16.   

    www.xiaonei.com
    有全国学校的名称 呵呵
      

  17.   

    日期有规律SUBSTRING就OK了把所有专业存到ARRAYLIST中,与当前的字符串对比,取出后,剩下的就是学校了
      

  18.   

    要想程序简单点就用 上面 正则的方法,但似乎有时候匹配不全复杂点就用我刚刚提的那个想法吧,累点而已,但好像目前还没有BUG
      

  19.   

    这个似乎也没有什么好办法吧..正如楼上各位所讲..情况太多了..用case来匹配也不是万能的..重新设计能否好点??
      

  20.   

    2001/06--2006/09湖南中南林学院计算机科学与技术大专
    给个简单的方法拉:
    2001/06--2006/09|湖南中南林学院计算机科学与技术大专
    用“|”搁开  还不好取?
    spilt!!! 不管 你前后的东西吧~
      

  21.   

    忘说日期了`
    把前段 取出的 再用“--” 披开成2个 日期型`  然后 ToDate!不知道 我说得对不啊!
      

  22.   

    indexof()读取“院”这个字的位置,然后再减去日期的长度,就是学院的长度了
    然后在用substring(日期最后一位(8),日期的长度);
    感觉就可以了吧!!我现在没有程序测试不了!
      

  23.   

    hehe ~~今天周末  都有分  ~~
      

  24.   

    貌似没有全能的办法——如果只用正则、substring和indexof这类方法的话。期待做搜索引擎的程序员来解答一下。我跟着学习:D