我截取出来的字符串是这样的
2001/06--2006/09湖南中南林学院计算机科学与技术大专....... (中间无空格,专业后面可能还有字)
描述:
1.前面的日期2001/06--2006/09 能否截取下来, 而且变成DATATIME型,或YY-MM字符
2.后面的学校能否弄出来呢 还有专业,学历(后面还有其他的字,切不管他)我想不出来什么好办法,也许用正则,可是我太菜了
希望各位高手帮个忙,如果可以,我单开贴,一次100!! 呵呵,因为着急,请理解,最后谢谢大家了~~中秋快乐~~
2001/06--2006/09湖南中南林学院计算机科学与技术大专....... (中间无空格,专业后面可能还有字)
描述:
1.前面的日期2001/06--2006/09 能否截取下来, 而且变成DATATIME型,或YY-MM字符
2.后面的学校能否弄出来呢 还有专业,学历(后面还有其他的字,切不管他)我想不出来什么好办法,也许用正则,可是我太菜了
希望各位高手帮个忙,如果可以,我单开贴,一次100!! 呵呵,因为着急,请理解,最后谢谢大家了~~中秋快乐~~
string str = s.substring(1,16); 此时得到的就是你要的日期了!
日期格式的字数是固定的,学历是几个固定的名词,日期可以直接SubString,学历用Indexof
,再研究学校和专业之间的规律吧,感觉这个比较麻烦
看高手的解决方法
把专业和学校分开,本人的想法是需要存储专业的名称,有存储的专业的名称来判断字段中的专业是什么,然后取出来,相应的在取出专业的时候获得该专业所在的Indexof的位置,然后分割出来学校名称感觉这样的效率太低
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"));
等待高手解决了~
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;
-
-把学科名称列举出来比对
-
-
}
}
这样就可以实现取学校名称了 方法笨了点,但能实现
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());
}
----------
谢谢老兄,你这个代码倒是不难理解,呵呵,辛苦~~谢谢
所以用 case 循环比对, 因专业 名称 就那么几个,而且各个学校一样,拿去比对,对上了就是 ,然后就跳出这个 循环就可以了
-------------------------------------------------------
专业太多了,谁知道他写什么专业,那样的话用case... 还不如连库里 再回来的好
谢谢大家哈哈~~
for(int i=0;i<aa.length();i++){string gsdsd=substring(0,indexof(aa[i]))
if (gsdsd!=null&&gsdsd.length>0)
return;
}
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());
}
-----------------这个是高手,似乎已经实现了
---------------------------------
是呀,所以现在只能考虑大多数情况了,你说的这个个别的,除非程序已经热工智能来判断了哈哈
谢谢老兄
有全国学校的名称 呵呵
给个简单的方法拉:
2001/06--2006/09|湖南中南林学院计算机科学与技术大专
用“|”搁开 还不好取?
spilt!!! 不管 你前后的东西吧~
把前段 取出的 再用“--” 披开成2个 日期型` 然后 ToDate!不知道 我说得对不啊!
然后在用substring(日期最后一位(8),日期的长度);
感觉就可以了吧!!我现在没有程序测试不了!