~~~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());
起止时间 = info[0].Split(":".ToCharArray())[0];
公司名称 = info[0].Split(":".ToCharArray())[1];
所属行业 = info[1].Split(":".ToCharArray())[1];
描述 = info[2] + info[3];
}
[解决办法]
本来就有啊.
foreach (Match m in ms)
这个ms.Count = 2 你用ms[0]就是第一个ms[1]就是第二个.
你要得到第二个公司的名称就用 ms[1].Result("$3")
[解决办法]
[解决办法]
学习
[解决办法]
学习
[解决办法]
up
[解决办法]
学习。
[解决办法]
up
[解决办法]
正则就是好用..MARK一下.追捧一下...
[解决办法]
帮顶~~~
[解决办法]
正则还是要好好学地,很多的判断正则都可以轻松解决!
[解决办法]
顶上...
[解决办法]
正则效率不高,用indexof查找位置,然后substring截取,你贴的可能部分代码,要分析的话,需要针对页面分析。
测试一下论坛:
- SQL code
Select * From Table
[解决办法]
- C# code
test
[解决办法]
cpp2017 的方法只能取到一个啊
[解决办法]
学习...