C# 循环截取字符串,高手大神们进啊

filmings 2014-11-07 02:29:45


如图,这只是一部分数据,实际会有很多的数据,现在的难点就是截取Condition里的字符串的问题,需要把and前后的每个值取出,然后再把>或是<或是=号后面的值取出来,最终生成的样式应该是下面这个样子



重点就是黄色底的部分,需要将第一张图的数据进行字符串截取,然后再一一对应的填充进去,不知道说的是否清楚,我一共就45分了,全部给了,有哪位大神帮我想想思路,最好是有代码,C#的,感谢万分!
...全文
365 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
QQ234788028 2014-11-10
  • 打赏
  • 举报
回复
先and分组 再 符号分组 可以外包我啊,哈哈
filmings 2014-11-10
  • 打赏
  • 举报
回复
唉,谢谢大家的意见了,我自己解决了
  • 打赏
  • 举报
回复
你可以学习这个开源工具 http://wenku.baidu.com/view/ec3661f69e31433239689342.html 它可以帮你高效且准确地实现比你想象的复杂10倍的要求。
filmings 2014-11-08
  • 打赏
  • 举报
回复
有谁能写点代码吗,让我看看,怎么没 人?
游离失所 2014-11-07
  • 打赏
  • 举报
回复
没难度,分组完用正则。。 (WD_AVG ([>/<][=]?) ([^ ]+)) 这样就能截取到了。。。。 名字不同就改下可以了
filmings 2014-11-07
  • 打赏
  • 举报
回复
不知道这们的数据行不行啊,好像得手动分成两列,辛苦了
filmings 2014-11-07
  • 打赏
  • 举报
回复
ModelName Condition A1_A_ETi-D131A-BL ((ChipImportType = 1509 AND POUT_AVG_20MA >= 23.4 AND POUT_AVG_20MA < 23.8) OR (ChipImportType = 1811 AND POUT_AVG_60MA >= 61.5 AND POUT_AVG_60MA < 62.5)) A1_A_ETi-D131A-BL ((ChipImportType = 1509 AND VF4_AVG < 3.11) OR (ChipImportType = 1811 AND VF4_AVG < 3.20)) A1_A_ETi-D131A-BL (ChipImportType = 1811 AND WD_AVG >= 450 AND WD_AVG < 456) A1_A_ETi-D131A-BZ ((ChipImportType = 1509 AND POUT_AVG_20MA >= 23.4 AND POUT_AVG_20MA < 23.8) OR (ChipImportType = 1811 AND POUT_AVG_60MA >= 61.5 AND POUT_AVG_60MA < 62.5)) A1_A_ETi-D131A-BZ ((ChipImportType = 1509 AND VF4_AVG < 3.11) OR (ChipImportType = 1811 AND VF4_AVG < 3.20)) A1_A_ETi-D131A-BZ (ChipImportType = 1811 AND WD_AVG >= 450 AND WD_AVG < 456) A1_A_ETi-D151A-BL ((ChipImportType = 1509 AND POUT_AVG_20MA >= 23.4 AND POUT_AVG_20MA < 24.2) OR (ChipImportType = 1811 AND POUT_AVG_60MA >= 61.5 AND POUT_AVG_60MA < 63.5)) A1_A_ETi-D151A-BL ((ChipImportType = 1509 AND VF4_AVG < 3.19) OR (ChipImportType = 1811 AND VF4_AVG < 3.28)) A1_A_ETi-D151A-BL ((ChipImportType = 1509 AND WD_AVG >= 449 AND WD_AVG < 459.7) OR (ChipImportType = 1811 AND WD_AVG >= 447.5 AND WD_AVG < 458.2)) 数据粘贴到excel中就行了,不知道这样行不
effun 2014-11-07
  • 打赏
  • 举报
回复
引用 9 楼 Z65443344 的回复:
不要上图 发些数据出来供测试 不要让回答问题的人还要看图手打
+1
於黾 2014-11-07
  • 打赏
  • 举报
回复
不要上图 发些数据出来供测试 不要让回答问题的人还要看图手打
effun 2014-11-07
  • 打赏
  • 举报
回复
去找Dynamic.cs,通过字符串生成Lambda表达式,然后再遍历表达式树,找到你要的东西。 http://www.cnblogs.com/tianyamoon/archive/2008/01/26/1053905.html
filmings 2014-11-07
  • 打赏
  • 举报
回复
源数据,从数据库中拷贝到excel的



这是最终要的图效果,可能图片有点小,总之就是按照前面的型号和后面的长字符串按照各自所在的单元格内填充上就行
filmings 2014-11-07
  • 打赏
  • 举报
回复
引用 4 楼 Z65443344 的回复:
思路有问题啊 遇到OR的该怎么办 比如type=1509 or type=1811 你这个excel表本身设计的就不合理了 其实你要实现分割很简单 先把and替换成"&" 把or替换成"|" 把空格替换成"" 然后split('&','|')就把每一项都分开了
这个excel的数据是从数据库里复制出来的,我重新贴上数据图和最终要实现的图片,感觉 这东西打字说不清楚,不知道看图能否看明白
_小黑_ 2014-11-07
  • 打赏
  • 举报
回复
把 你 excel 里的值 和 你想要的值 粘贴出来
於黾 2014-11-07
  • 打赏
  • 举报
回复
思路有问题啊 遇到OR的该怎么办 比如type=1509 or type=1811 你这个excel表本身设计的就不合理了 其实你要实现分割很简单 先把and替换成"&" 把or替换成"|" 把空格替换成"" 然后split('&','|')就把每一项都分开了
exception92 2014-11-07
  • 打赏
  • 举报
回复
这个貌似可以用正则取值。等大神吧
爱在今世 2014-11-07
  • 打赏
  • 举报
回复
你可以读取每一组数据到字符串,然后先按照and分割,然后再把剩下的字符串数组的每一个字符串都按照 >= <= > < = 的顺序查找符号并且分割就行了
filmings 2014-11-07
  • 打赏
  • 举报
回复
下面生成 的图片是我手动拼的,只截取了一组数的数据,实际上有很多,需要用到循环的

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧