+ -
当前位置:首页 → 问答吧 → delphi 截取网页字符串

delphi 截取网页字符串

时间:2011-09-24

来源:互联网

用 delphi idhttp.get(url)后 有一段N长的字符集 现在想截取其中一些东西 
  例子 <td class="bg3" nowrap>24001</TD>
  <td class="bg3" nowrap>27,<span class="red">546</span></TD>
  <td class='blue1'>&nbsp;</td>
  <td class='blue1'>&nbsp;</td>
  <td class='blue1'>&nbsp;</td>
  <td class='blue1'>&nbsp;</td>
  <td class='blue1'>&nbsp;</td>
  <td class='blue1'><span class='ballRed1'>5</span></td>
  <td class='blue1'>&nbsp;</td>
  <td class='blue1'>&nbsp;</td>
  <td class='blue1'>&nbsp;</td>
  <td class='blue1'>&nbsp;</td>
  <td class='bg1_3'>&nbsp;</td>
  <td class='bg1_3'>&nbsp;</td>
  <td class='bg1_3'>&nbsp;</td>
  <td class='bg1_3'>&nbsp;</td>
  <td class='bg1_3'><span class='ballRed2'>4</span></td>
  <td class='bg1_3'>&nbsp;</td>
  <td class='bg1_3'>&nbsp;</td>
  <td class='bg1_3'>&nbsp;</td>
  <td class='bg1_3'>&nbsp;</td>
  <td class='bg1_3'>&nbsp;</td>
  <td class='bg1'>&nbsp;</td>
  <td class='bg1'>&nbsp;</td>
  <td class='bg1'>&nbsp;</td>
  <td class='bg1'>&nbsp;</td>
  <td class='bg1'>&nbsp;</td>
  <td class='bg1'>&nbsp;</td>
  <td class='bg1'><span class='ballRed3'>6</span></td>
  <td class='bg1'>&nbsp;</td>
  <td class='bg1'>&nbsp;</td>
  <td class='bg1'>&nbsp;</td>
  <TD class="bg3">10</TD>
  <TD class="bg3">15</TD>
  <td class="bg3">小</td>
  <td class="bg3">大</td>
  <td class="bg3">双</td>
  <td class="bg3">双</td>
  </TR>
   
  <tr>
  <td class="bg3" nowrap>24002</TD>
  <td class="bg3" nowrap>06,<span class="red">619</span></TD>
  <td class='blue1'>&nbsp;</td>
  <td class='blue1'>&nbsp;</td>
  <td class='blue1'>&nbsp;</td>
  <td class='blue1'>&nbsp;</td>
  <td class='blue1'>&nbsp;</td>
  <td class='blue1'>&nbsp;</td>
  <td class='blue1'><span class='ballRed1'>6</span></td>
  <td class='blue1'>&nbsp;</td>
  <td class='blue1'>&nbsp;</td>
  <td class='blue1'>&nbsp;</td>
  <td class='bg1_3'>&nbsp;</td>
  <td class='bg1_3'><span class='ballRed2'>1</span></td>
  <td class='bg1_3'>&nbsp;</td>
  <td class='bg1_3'>&nbsp;</td>
  <td class='bg1_3'>&nbsp;</td>
  <td class='bg1_3'>&nbsp;</td>
  <td class='bg1_3'>&nbsp;</td>
  <td class='bg1_3'>&nbsp;</td>
  <td class='bg1_3'>&nbsp;</td>
  <td class='bg1_3'>&nbsp;</td>
  <td class='bg1'>&nbsp;</td>
  <td class='bg1'>&nbsp;</td>
  <td class='bg1'>&nbsp;</td>
  <td class='bg1'>&nbsp;</td>
  <td class='bg1'>&nbsp;</td>
  <td class='bg1'>&nbsp;</td>
  <td class='bg1'>&nbsp;</td>
  <td class='bg1'>&nbsp;</td>
  <td class='bg1'>&nbsp;</td>
  <td class='bg1'><span class='ballRed3'>9</span></td>
  <TD class="bg3">10</TD>
  <TD class="bg3">16</TD>
  <td class="bg3">小</td>
  <td class="bg3">大</td>
  <td class="bg3">单</td>
  <td class="bg3">单</td>
  </TR>
   
  <tr>
  <td class="bg3" nowrap>24003</TD>
  <td class="bg3" nowrap>36,<span class="red">175</span></TD>
  <td class='blue1'>&nbsp;</td>
  <td class='blue1'><span class='ballRed1'>1</span></td>
  <td class='blue1'>&nbsp;</td>
  <td class='blue1'>&nbsp;</td>
  <td class='blue1'>&nbsp;</td>
  <td class='blue1'>&nbsp;</td>
  <td class='blue1'>&nbsp;</td>
  <td class='blue1'>&nbsp;</td>
  <td class='blue1'>&nbsp;</td>


  怎么截取出 24001 27,<span class="red">546 ... 24003 36,<span class="red">175
  '<td class="bg3" nowrap>' 这个可能是唯一的

作者: fyx1200   发布时间: 2011-09-24

找人帮忙!!!

作者: fyx1200   发布时间: 2011-09-24

分析<td class="bg3" nowrap>这个字符在你要获取的字符前,是否出现的次数是固定的,是的话,以此为依据,用Tstringlist装载网页内容,找到<td class="bg3" nowrap>这个字符(出现次数)的位置后面,就是你要的数据。

或者,提供你的页面地址,让大家更容易给你分析。

作者: gzzai   发布时间: 2011-09-24

就是体育彩票中的开奖期数 和中奖号码

作者: fyx1200   发布时间: 2011-09-24

正则表达式是字串处理的最佳手段,如果你用delphi Xe2
就可以用,EX:
implementation
uses RegularExpressions;
{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  r:TRegex;
  m:TMatch;
begin
  r:=Tregex.Create('\d+'); //在一串字符中找到数字
  m:=r.Match('aaa235432aaaa');
  if m.Success then
  ShowMessage(m.Value)
  else
  ShowMessage('no Find!');
end;
其它版本可以在网上找一下相应的控件,我一直用这个:
  http://regexpstudio.com/TRegExpr/TRegExpr.html
它有源码和例子

作者: keiy   发布时间: 2011-09-24