string str = "2005/03--2006/11:肇航科技有限公司\r\n所属行业:计算机软件 \r\n软件部 高级软件工程师 \r\njava高级高级软件工程师\r\n\r\n\r\n\r\n2004/07--2005/02:昌盛电脑工作室\r\n所属行业:文字媒体/出版 \r\n设计部 平面设计 \r\n平面设计,"字符串如上面所述,我要分别取出 起始时间,公司名称(后面可能是2个以上的公司),所属行业,和后面的描述请各位帮忙实现下,小弟感激不尽,谢谢
调试欢乐多
int num = str.indexOf('\r\n\r\n\r\n\r\n');//这里的区分符号('\r\n\r\n\r\n\r\n')根据你的字符串决定,这种方法不是万能的。
string strPart1 = substring('str',0,num1);
string strPart2 = substring('str',num1);//對第一段進行截取
int numStart = strPart1.indexOf(':');//起始位置
int numEnd = strPart1.indexOf('\r\n');//中止位置
string companyName1 = substring(strPart1,numStart,numEnd-numStart);//截取string companyName2 =...//類似上边的方法
Regex reg = new Regex(@"(\S+)--(\S+):([\s\S]*?)所属行业:([\s\S]*)", RegexOptions.IgnoreCase | RegexOptions.Multiline);
MatchCollection ms = reg.Matches(str);
foreach(Match m in ms)
{
Response.Write("开始日期:"+m.Result("$1"));
Response.Write("结束日期:" + m.Result("$2"));
Response.Write("公司:"+m.Result("$3"));
Response.Write("行业:"+m.Result("$4"));
Response.Write("<BR>");
}
在对第二个进行截取的时候,起始位置不是num,应该是num加上区分符号自身的长度。
------------------------
谢谢你,我会给分的, 请问 我不知道有几个单位的情况下,怎么才能判断所有的呢?用正则,可是我不会哦~~郁闷~!
---------------¦ 这个是| 吗? 你测试过吗?谢谢你
http://www.unibetter.com/deerchao/zhengzhe-biaodashi-jiaocheng-se.htm
我的意思是,有几组数据的话,先把每组数据拆分开来。像你的str就可以用'\r\n\r\n\r\n\r\n'区分。
然后迭代,对每一个数据由可以用':'和'r\n'拆分到你要得数据段。
受楼上的启发,用arraylist循环是个不错的方法。
---------------
这个只是第一个的吧 后面的公司能想办法弄出来吗?
然后分别取里面的值
Regex reg = new Regex(@"(\S+)--(\S+):([\s\S]*?)所属行业:([\s\S]*)", RegexOptions.IgnoreCase | RegexOptions.Multiline);
MatchCollection ms = reg.Matches(str);
foreach (Match m in ms)
{
Response.Write("开始日期:" + m.Result("$1"));
Response.Write("结束日期:" + m.Result("$2"));
Response.Write("公司:" + m.Result("$3"));
Response.Write("行业:" + m.Result("$4"));
Response.Write(" <BR >");
}
---------------
这个只是第一个的吧 后面的公司能想办法弄出来吗?
==============
看看运行结果,后面的公司有出来
---------------
这个只是第一个的吧 后面的公司能想办法弄出来吗?
==============
看看运行结果,后面的公司有出来
==============
出来之后如果再细分,是再重复一便吗? 谢谢你
string[] arrlist = str.Split("|".ToCharArray());
foreach(string smstr in arrlist)
{
string[] info = smstr.Split("\r\n".ToCharArray());
起止时间 = info[0].Split(":".ToCharArray())[0];
公司名称 = info[0].Split(":".ToCharArray())[1];
所属行业 = info[1].Split(":".ToCharArray())[1];
描述 = info[2] + info[3];
}
====================
谢谢大哥了,我的意思就是比如上面的字符串有2个公司,要每个公司都有起始时间,公司名称,所属行业,后面描述再次谢谢你 谢谢大家
foreach (Match m in ms)
这个ms.Count = 2 你用ms[0]就是第一个ms[1]就是第二个.你要得到第二个公司的名称就用 ms[1].Result("$3")
-------
谢谢大哥
Select * From Table