问题描述
字符串”1,2,3,4,5,6,7,8,9,10,11,22,33,45,333,3333,3424,3123,4564,75,312“我想获取前5个,分割的字符应该是“1,2,3,4,5,”转换数组求解
解决方案
解决方案二:
你是想i[0]=1i[1]=2……这样吧?别用正则,用split方法更容易吧
解决方案三:
这个不需要用正则string.split方法即可
解决方案四:
strings="1,2,3,4,5,6,7,8,9,10,11,22,33,45,333,3333,3424,3123,4564,75,312";string[]n=s.Split(',');string[]m=newstring[5];Array.Copy(n,m,5);MessageBox.Show(string.Join(",",m));
解决方案五:
引用1楼ufo20020427的回复:
你是想i[0]=1i[1]=2……这样吧?别用正则,用split方法更容易吧
不是我知道数组可以实现但是我想问的是不是有其他的方法因为我这个字符串很长中间以逗号分割我只想取出第10个逗号分割前边的字符串!
解决方案六:
引用3楼save4me的回复:
strings="1,2,3,4,5,6,7,8,9,10,11,22,33,45,333,3333,3424,3123,4564,75,312";string[]n=s.Split(',');string[]m=newstring[5];Array.Copy(n,m,5);MessageBox.Show(string.Join(",",m));
不用Split实现可以吗?
解决方案七:
引用2楼q107770540的回复:
这个不需要用正则string.split方法即可
不想用Split实现
解决方案八:
为什么,怕字符串超长影响效率?字符串超长的话,用正则先匹配部分,效率也不见得就高到哪里去
解决方案九:
哦,你是想要优化是吧?假设字符为1,2,3,4,5,6,7,8,9(d,){5}获得1,2,3,4,5,然后这部分再去split
解决方案十:
该回复于2014-07-30 14:18:36被版主删除
解决方案十一:
//你自己搞定转义,我手打usingSystem.Text.RegularExpressions;usingSystem.Collections;stringreg="d+(?=,)";stringstr=”1,2,3,4,5,6,7,8,9,10,11,22,33,45,333,3333,3424,3123,4564,75,312“;Matchmatch=Regex.Matches(str,reg);ArrayListal=newArraylist();foreach(Matchmtinmatch){al.add(mt.Group[0].Value);}我没测试
解决方案十二:
引用7楼Z65443344的回复:
为什么,怕字符串超长影响效率?字符串超长的话,用正则先匹配部分,效率也不见得就高到哪里去
是的字符太长是个test类型或者我能取到indexof第5个也行然后我直接substring
解决方案十三:
引用8楼ufo20020427的回复:
哦,你是想要优化是吧?假设字符为1,2,3,4,5,6,7,8,9(d,){5}获得1,2,3,4,5,然后这部分再去split
对我就是这么想的用正则获取前5个以,分割但是这个正则不特么的不会写
解决方案十四:
引用10楼zzx112358的回复:
//你自己搞定转义,我手打usingSystem.Text.RegularExpressions;usingSystem.Collections;stringreg="d+(?=,)";stringstr=”1,2,3,4,5,6,7,8,9,10,11,22,33,45,333,3333,3424,3123,4564,75,312“;Matchmatch=Regex.Matches(str,reg);ArrayListal=newArraylist();foreach(Matchmtinmatch){al.add(mt.Group[0].Value);}我没测试
我想用正则获取前5个以,分割的可以吗?
解决方案十五:
staticvoidMain(string[]args){stringtext="1,2,3,4,5,6,7,8,9,10";stringpattern=@"(d,?){5}";Regexreg=newRegex(pattern,RegexOptions.IgnoreCase);Matchmatch=reg.Match(text);Console.Write(match.Groups[0].ToString());//这里获得1,2,3,4,5}
解决方案:
上面更正下:staticvoidMain(string[]args){stringtext="1,2,3,4,5,6,7,8,9,10";stringpattern=@"(d+?,){10}";Regexreg=newRegex(pattern,RegexOptions.IgnoreCase);Matchmatch=reg.Match(text);Console.Write(match.Groups[0].ToString());//这里获得1,2,3,4,5}
解决方案:
正则的话,也不用写太复杂的,直接匹配逗号,然后找到第五个匹配的位置就好或者就”.*,.*,.*,.*,.*,“这样
解决方案:
引用15楼ufo20020427的回复:
上面更正下:staticvoidMain(string[]args){stringtext="1,2,3,4,5,6,7,8,9,10";stringpattern=@"(d+?,){10}";Regexreg=newRegex(pattern,RegexOptions.IgnoreCase);Matchmatch=reg.Match(text);Console.Write(match.Groups[0].ToString());//这里获得1,2,3,4,5}
没结果
解决方案:
usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Text.RegularExpressions;usingSystem.Collections;namespaceConsoleApplication1{classProgram{staticvoidMain(string[]args){stringreg="\d+(?=,)";stringstr="1,2,3,4,5,6,7,8,9,10,11,22,33,45,333,3333,3424,3123,4564,75,312";MatchCollectionmatch=Regex.Matches(str,reg);ArrayListal=newArrayList();foreach(Matchmtinmatch){al.Add(mt.Groups[0].Value);Console.WriteLine(mt.Groups[0].Value);}}}}
解决方案:
不对你来咬我
解决方案:
直接匹配逗号,然后找到第五个匹配的位置就好
解决方案:
正则的话,也不用写太复杂的,