求几个正则表达式和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
}