(function(){ ;(function(){ var logUrl = 'http://nsclick.baidu.com/v.gif?pid=201'; var params = { tid : '7000', pj : 'app', fm : 'apptm', item : 'apploaded', zone: 'web-list', wd : '冠心病', qid : window.bdQid, cid : window.bdCid, _t : new Date().getTime() }; var img = window.app_temp_img = new Image(); img.onload = img.onerror = img.onabort = function(){ img.onload = img.onerror = img.onabort = null; img = null; window.app_temp_img = null; }; for(var p in params){ logUrl = logUrl + '&' + p + '=' + encodeURIComponent(params[p]); } img.src = logUrl; })(); app.data = app.data || {}; var baidu = app.baidu; var data = { appLables : 0, appSType : "500" ,otherInfo : {"LABEL":[{"sa":"日常", "su":2}], "STYPE":[{"sa":"500", "su":2}]} }; baidu.extend(app.data,data); var args = { keyword : '冠心病', initKeyword : '冠心病', dispNum : 2, totalNum : 2, firstAppId : '187184' }; baidu.extend(app.args, args); var divisor = app.args.totalNum > app.args.separation_b ? 20 : 8; if(app.data.appSType == '200') { if(app.args.totalNum <= app.args.separation_b){ divisor = 2; } else if(app.args.totalNum >= 80){ if(!app.data.appLables){ app.data.appLables = {}; app.data.appLables.labels = app.data.otherInfo['LABEL']; } var st = app.data.otherInfo['STYPE']; if(app.data.otherInfo['STYPE']){ var t; for(var i = 0, l = st.length; i < l; i++){ t = st[i]; if(t.sa == '200'){ app.args.totalNum = t.su > 760 ? 760 : t.su; break; } } } divisor = 8; } } else if(app.data.appSType == '400' && app.args.totalNum <= app.args.separation_b){ divisor = 3; } else if(app.data.appLables !=0 && app.data.appLables.labels && app.data.appLables.labels.length >= 1 && app.data.appSType != '200'){ divisor = 12; } var pageNum = app.data.pageNum = Math.ceil(app.args.totalNum / divisor); app.data.initData = { "other_data" : [{"Query":"冠心病","app_sType":"500", "Keyword":"冠心病", "TotalPageNum":pageNum, "PageNo":1, "ListNum":2, "DispNum":2,"NowTime":window["bdServerTime"]}], "data": [ { "app_id":'187184', "app_cid":'6', "app_leaf_cid":'25', "rankExpand" : 1, "hotLevel" : 39.815, "app_name":'冠心病专家', "app_name_hilight":'<em>冠心病</em>专家', "developer_name":'开发者:120健康网', "developer_alias":'120健康网', "developer_website":'http://www.120.net', "developer_level" : '2', "app_shortdesc":'帮您找到全国正规医院的冠心病专家,根据疾病找专家', "app_sType":'501', "attribute": eval('({\"app_cover_cat\":\"e340cccce58611f74985dc080ad830cb.jpg\",\"app_cover_cat2\":\"cf510b4ebcb90b7ab13ea5e7af4f636a.jpg\",\"type\":\"\\u65e5\\u5e38\"})'), "score":'3.0', "score_num":2, "app_price":'0', "app_logo":'http://apps3.bdimg.com/store/static/kvt/e0ba573897f3563162b0144d4ccdebe0.jpg' ,"app_useTimes":'335' ,"app_lable":'日常' ,"create_time":1322475707 }, { "app_id":'173856', "app_cid":'6', "app_leaf_cid":'25', "rankExpand" : 1, "hotLevel" : 37.865, "app_name":'冠心病专家', "app_name_hilight":'<em>冠心病</em>专家', "developer_name":'开发者:好大夫在线', "developer_alias":'好大夫在线', "developer_website":'http://www.haodf.com', "developer_level" : '1', "app_shortdesc":'帮你找到可信赖的正规医院冠心病专家', "app_sType":'501', "attribute": eval('({\"type\":\"\\u65e5\\u5e38\"})'), "score":'5.0', "score_num":3, "app_price":'0', "app_logo":'http://apps2.bdimg.com/store/static/kvt/3b22539028accf3d0f188b1a62cd5391.jpg' ,"app_useTimes":'998' ,"app_lable":'日常' ,"create_time":1319797466 }, {} ].slice(0, -1) }; app.data.searchData = app.data.initData.data; app.data.initData.data = app.data.searchData.slice(0, divisor); })(); app.init(); 我想取出 软件名称、开发者、站点、和描述 他们在文中分别对应的标识如下"app_name":'冠心病专家'
"developer_name":'开发者:120健康网'
"developer_website":'http://www.120.net'
"app_shortdesc":'帮您找到全国正规医院的冠心病专家,根据疾病找专家'我采用的方法是正则 如下
Regex reg = new Regex(@"app_name"":'([^']+)[\s\S]*?developer_name"":'([^']+)[\s\S]*?developer_website"":'([^']+)[\s\S]*?app_shortdesc"":'([^']+)");
if (reg.IsMatch(test))
{
//软件名称
richTextBox3.AppendText("软件名称:" + reg.Match(test).Groups[1].Value.Trim() + "\r\n");
//开发者
richTextBox3.AppendText(reg.Match(test).Groups[2].Value.Trim() + "\r\n");
string b = reg.Match(test).Groups[2].Value;
//站点
richTextBox3.AppendText("开发站点:" + reg.Match(test).Groups[3].Value.Trim() + "\r\n");
//描述
richTextBox3.AppendText("描述:" + reg.Match(test).Groups[4].Value.Trim() + "\r\n");
}
但是上述正则只能取出一个,但是仔细看上面的HTML代码,实际上一共是两个,并且两个的标示符一模一样(都是"app_name"、"developer_name"等)->第一个:
"app_name":'冠心病专家'
"developer_name":'开发者:120健康网'
"developer_website":'http://www.120.net'
"app_shortdesc":'帮您找到全国正规医院的冠心病专家,根据疾病找专家'第二个
"app_name":'冠心病专家'
"developer_name":'开发者:好大夫在线'
"developer_website":'http://www.haodf.com'
"app_shortdesc":'帮你找到可信赖的正规医院冠心病专家'这种情况应该怎么将两个或多个都取出来呢?
注意: 也可能是三个 四个 五个...最好不要写死两个 但是可以肯定 肯定不会超过8个
感谢回复!!!PS:实际界面请参考 百度搜索“冠心病” 您会看到中间的两个很像winform的两个小软件...就是那个的html代码
解决方案 »
- 今天面试了个公司,遇到个题
- asp.net的学习者如何入门jquery
- 关于dropdownlist的问题,求救!
- 问高哥的帖子?哈哈,长点
- 添加记录的同时如何获取自动编号?
- 大虾,,帮忙啊,一下午了.button事件怎样取得gridview模板列中panel控件中的textbox的值.急啊....................
- DataGrid的按钮列中“编辑”点击后不出“更新”和“取消”按钮???
- 求助求助!!
- 谢谢~谢谢 StringBuilder在ASP.net里的应用,就各位给点实例,谢谢
- 运行petshop4.0时为什么注册不了?
- DropDownList绑定的时候去掉重复值,求高手代码
- 谁可以告诉他这的效果是怎么实现的
foreach(Match m in reg.Matches(test))
{
//软件名称
richTextBox3.AppendText("软件名称:" + m.Groups[1].Value.Trim() + "\r\n");
//开发者
richTextBox3.AppendText(m.Groups[2].Value.Trim() + "\r\n");
string b = m.Groups[2].Value;
//站点
richTextBox3.AppendText("开发站点:" + m.Groups[3].Value.Trim() + "\r\n");
//描述
richTextBox3.AppendText("描述:" + m.Groups[4].Value.Trim() + "\r\n");
}