字符串处理的一个问题 c# 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 101|A|106=B|106=C|107|D这什么意思101没有=,表示这题没有写,交白卷?A和D前面没跟题号,这又是闹哪样,到底是哪个题的选项啊不是应该101=A|106=B|106=C|107=D才对吗如果你不能给出明确的规则,这根本没法处理 哦我输写失误了是这样的哈 str="101=A|106=B|106=C|107=D"须要得到 str="101=A|106=B,C|107=D" str="101|A|106|B,C|107|D" 这样更合理吧?或者改大一点..str="101|A;106|B,C;107|D" 如果你能找到源头,直接在拼接的地方判断一下,一样的就直接追加选项,而不再重新写一遍题号,那样更简单一些否则你需要先Split把字符串分解成字符串数组,然后循环遍历判断上一个和下一个是否一样,再合并 str="101|A|106|B,C|107|D" 这样更合理吧?或者改大一点..str="101|A;106|B,C;107|D" 你这个意思都差不多,主要是我不能直接得到多项选择 就处理成106|B,C这个格式,我用的表单serialize()得到的就是106=B;106=C (选择两个的情况下,当然选一个就没问题) string.Join("|", str.Split('|').Select(p => p.Split('=')) .GroupBy(p => p[0], p => p[1]) .Select(g => g.Key + "=" + string.Join(",", g))); .Select( 有问题 已经引用了 using System.Linq;的 11楼那样子是可以的。需要引用linq明目空间。 //using System.Text.RegularExpressionsvar str = "101|A|106=B|106=C|107|A|108=A|108=D|109|D";str = Regex.Replace(str, @"((\|?\d+=)([A-Z]))+", m => m.Groups[2].Captures[0].Value + string.Join(",", m.Groups[3].Captures.Cast<Capture>().Select(c => c.Value).ToArray())); //using System.Text.RegularExpressionsvar str = "101|A|106=B|106=C|107|A|108=A|108=D|109|D";str = Regex.Replace(str, @"((\|?\d+=)([A-Z]))+", m => m.Groups[2].Captures[0].Value + string.Join(",", m.Groups[3].Captures.Cast<Capture>().Select(c => c.Value).ToArray())); 三层,修改了虚拟路径引发的未能加载.aspx文件类 help?! C#中已经获得了编码为GBK的xml文档字符串,如何转成UTF-8 正则表达式匹配替换求解 强类型数据集如何实现缓存? 控件的DefaultValue怎么不起作用了? 应该是GDI方面的问题,详情请看内容,100分 如何打包.net 2.0的框架使安装过程不会显示.net2.0框架的界面 问2个伪pascal单词的意思 c++学了两年了vc用了1年了,下面学习java 还是c#给点建议 .NET Framework里面有能处理Excel文件的namespace么? SqlServer问题 c#中用占位符的时候有错
这什么意思
101没有=,表示这题没有写,交白卷?
A和D前面没跟题号,这又是闹哪样,到底是哪个题的选项啊
不是应该
101=A|106=B|106=C|107=D
才对吗如果你不能给出明确的规则,这根本没法处理
哦我输写失误了是这样的哈 str="101=A|106=B|106=C|107=D"
须要得到 str="101=A|106=B,C|107=D"
str="101|A|106|B,C|107|D"
这样更合理吧?
或者改大一点..str="101|A;106|B,C;107|D"
str="101|A|106|B,C|107|D"
这样更合理吧?
或者改大一点..str="101|A;106|B,C;107|D" 你这个意思都差不多,主要是我不能直接得到多项选择 就处理成106|B,C这个格式,我用的表单serialize()
得到的就是106=B;106=C (选择两个的情况下,当然选一个就没问题)
string.Join("|", str.Split('|').Select(p => p.Split('='))
.GroupBy(p => p[0], p => p[1])
.Select(g => g.Key + "=" + string.Join(",", g)));
.Select( 有问题 已经引用了 using System.Linq;的
var str = "101|A|106=B|106=C|107|A|108=A|108=D|109|D";
str = Regex.Replace(str, @"((\|?\d+=)([A-Z]))+", m => m.Groups[2].Captures[0].Value + string.Join(",", m.Groups[3].Captures.Cast<Capture>().Select(c => c.Value).ToArray()));
var str = "101|A|106=B|106=C|107|A|108=A|108=D|109|D";
str = Regex.Replace(str, @"((\|?\d+=)([A-Z]))+", m => m.Groups[2].Captures[0].Value + string.Join(",", m.Groups[3].Captures.Cast<Capture>().Select(c => c.Value).ToArray()));