日期:2014-05-18  浏览次数:20770 次

求几个正则表达式和datagridview code
1、
var listIssue = [{"BonusNumberString":"1,4,9,8,2|2|5","BonusTime":"2012-05-16 14:10","IssueNumber":"20120516-049"},{"BonusNumberString":"6,7,2,3,6|2|5","BonusTime":"2012-05-16 14:00","IssueNumber":"20120516-048"},{"BonusNumberString":"2,1,6,0,3|2|5","BonusTime":"2012-05-16 13:50","IssueNumber":"20120516-047"},
某网页上的部分源码如上所示,现在欲抓取以上红色部分数字,然后在datagridview控件中显示,显示顺序及结果如下所示:
  Id N1 N2 N3 N4 N5
20120516-047 2 1 6 0 3
20120516-048 6 7 2 3 6 
20120516-049 1 4 9 8 2

求C# CODE

2、同求以下红色部分数字正则表达式CODE
2012127 2012-05-13 9 8 5 9 5 8 1 1 60669008 13091 1000 0 320 31797 160
2012128 2012-05-14 4 3 1 4 4 6 1 1 61264606 15033 1000 0 320 22216 160
2012129 2012-05-15 3 6 8 8 4 6 1 1 61778934 44375 1000 0 320 67927 160
显示结果
  time N1 N2 N3
2012-05-13 9 8 5
2012-05-14 4 3 1
2012-05-15 3 6 8

------解决方案--------------------
Id N1 N2 N3 N4 N5
20120516-047 2 1 6 0 3
20120516-048 6 7 2 3 6
20120516-049 1 4 9 8 2
这个正则(?is)"BonusNumberString":"(.+?)\|\d+\|\d+","BonusTime":".+?","IssueNumber":"(.+?)"
取第一个分组和第二个分组
取出来是这样的
第一个分组:2,1,6,0,3//这个你按照逗号Split就行了
第二个分组:20120516-047
第一个分组:6,7,2,3,6//这个你按照逗号Split就行了
第二个分组:20120516-048
第一个分组:1,4,9,8,2//这个你按照逗号Split就行了
第二个分组:20120516-049

第二个问题
(?is)\b\d{4}-\d{2}-\d{2}\s*\d+\s*\d+\s*\d+\b
------解决方案--------------------
C# code

 string tempStr = File.ReadAllText(@"C:\Documents and Settings\Administrator\桌面\Test.txt", Encoding.GetEncoding("GB2312"));//读取tx
                
                string pattern = @"(?i){(['""])BonusNumberString\1:\1([^'""|]+)[\s\S]*?IssueNumber\1:\1([^'""]+)\1}";
                foreach (Match m in Regex.Matches(tempStr, pattern))
                {
                    //循环输出
                    string val1 = m.Groups[2].Value;//1,4,9,8,2
                    string val2 = m.Groups[3].Value;//20120516-049
                   
                }