各位哥哥姐姐!
有如下一段很简单的网页"ceshi.html"代码:
<html>
<head>
<title>A队 VS B队</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body>
<center>
<table>
<tr>
<td width="50">A队</td>
<td width="50">和局</td>
<td width="50">B队</td>
<td width="70">变化时间</td>
</tr>
<tr>
<td>1.15</td>
<td>6.50</td>
<td>17.06</td>
<td>05-11 17:24</td>
</tr>
<tr>
<td>1.16</td>
<td>6.50</td>
<td>16.64</td>
<td>05-11 17:15</td>
</tr>
</table>
</center>
</body>
</html>
要用Delphi与正则表达式把里面的数据读出来存放在数据库里,并且读出来的数据是下面这种样子的:
 A队  和局   B队    变化时间 
1.15 6.50 17.06 05-11 17:24
1.16 6.50 16.64 05-11 17:15
应该怎样编写正则表达式来匹配呢?
主要是按行读起后存入数据库中!希望各位哥哥姐姐能帮小弟这个忙
小弟一定高分相赠以表谢意,小弟上一个问题给了总分120分,希望这一个也能到达这个分数!
小弟对各位哥哥姐姐的帮助表以深深的感激!

解决方案 »

  1.   

    不知道你是不是使用TPerlRegEx。var
      reg: TPerlRegEx;
    begin
      reg := TPerlRegEx.Create(nil);  reg.Subject := '<td width="50">A队 </td><td width="50">和局 </td><td width="50">B队 </td><td width="70">变化时间 </td>';
      reg.RegEx   := '<td .*?>(.*?)<\/td>';
      reg.Options := [preSingleLine];  while reg.MatchAgain do
      begin
        ShowMessage(reg.SubExpressions[1]); //将分别显示: A队 和局 B队 变化时间
        {另外:
          reg.SubExpressionCount      是子表达式的个数;
          reg.SubExpressionLengths[n] 是第 n 个表达式返回的字符串的长度;
          reg.SubExpressionOffsets[n] 是第 n 个表达式返回的字符串在源字符串中的位置
         }
      end;  FreeAndNil(reg);
    end;关于使用TPerlRegEx的更多信息,请参考这个Blog:
    http://www.cnblogs.com/del/archive/2007/12/21/1008108.html
      

  2.   

    谢谢帮忙!!!小弟感激不尽!
    但是有一个问题
    我抓到的网页中含有其他html代码
    我只想要含有table标签以内的代码,而且table以内的标签要留下来,就上面的例子而言,我希望采集到的内容为:
    <table> 
    <tr><td width="50">A队</td>
    <td width="50">和局 </td>
    <td width="50">B队 </td> 
    <td width="70">变化时间 </td> 
    </tr> 
    <tr> 
    <td>1.15 </td> 
    <td>6.50 </td> 
    <td>17.06 </td> 
    <td>05-11 17:24 </td> 
    </tr> 
    <tr> 
    <td>1.16 </td> 
    <td>6.50 </td> 
    <td>16.64 </td> 
    <td>05-11 17:15 </td> 
    </tr> 
    </table>
    得到这样的内容,应该怎样编写正则表达式呢???
    谢谢!
    小弟感激不尽!
      

  3.   

    各位哥哥姐姐!
    正则表达式怎样表示非(反匹配)的关系的呢?
    譬如说我有一段文章《The memory!》“I'm student from GYCC,20 years old……………………in a word”总之字数很多,这个时候我想在其中找出一段“when i leave family to senior school,i aways thinking our family in those days”,是否可以用反取方法呢?就是取得《The memory!》中这一段之外的其他内容呢?
      

  4.   

    你可以用替换字符串的方法,把“when i leave family to senior school,i aways thinking our family in those days”替换为''空字符串,剩下的就是你要的了。