~~~100分帮忙实现解决下截取字符串的问题! 肯定给分哦,帮定也给啊~~
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 =...//類似上边的方法
------解决方案--------------------还是这个问题 ?这个难...............
------解决方案--------------------up
------解决方案-------------------- 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平面设计,";
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>");
}
------解决方案--------------------补充:方法是这样的,不过对数值的准确性没有调试,你可以打断点自己把int型的数据作一些加减(可能会加1或者减1)。
在对第二个进行截取的时候,起始位置不是num,应该是num加上区分符号自身的长度。
------解决方案--------------------学习正则表达式吧,我看你这个肯定是要使用正则来解决的。
------解决方案--------------------学习...
------解决方案--------------------推荐一个易懂的教程: 正则表达式30分钟入门教程
http://www.unibetter.com/deerchao/zhengzhe-biaodashi-jiaocheng-se.htm
------解决方案--------------------indexOf()方法貌似是有截取的起始控制的参数的。你可以查一下msdn。
我的意思是,有几组数据的话,先把每组数据拆分开来。像你的str就可以用'\r\n\r\n\r\n\r\n'区分。
然后迭代,对每一个数据由可以用':'和'r\n'拆分到你要得数据段。
受楼上的启发,用arraylist循环是个不错的方法。
------解决方案--------------------string[] strP = str.Split("\r\n".ToCharArray());
然后分别取里面的值
------解决方案--------------------cpp2017
---------------
这个只是第一个的吧 后面的公司能想办法弄出来吗?
==============
看看运行结果,后面的公司有出来
------解决方案--------------------再怎么细分,分到什么程度?
------解决方案--------------------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平面设计,";
str = str.Replace("\r\n\r\n\r\n\r\n","|");
string[] arrlist = str.Split("|".ToCharArray());
foreach(string smstr in arrlist)
{
string[] info = smstr.Split("\r\n".ToCharArray());