各位哥哥姐姐!
有如下一段很简单的网页"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分,希望这一个也能到达这个分数!
小弟对各位哥哥姐姐的帮助表以深深的感激!
有如下一段很简单的网页"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分,希望这一个也能到达这个分数!
小弟对各位哥哥姐姐的帮助表以深深的感激!
解决方案 »
- 为什么我的服务端日志总是不断的提示有客户端连入(同一个)
- 如何向Winrar一样将自定义的菜单项添加到系统菜单(如何响应)?
- $936F949 EOLeException 多重步骤操作发生错误,请检查每一个状态值
- ------ExceptProc如何使用?---------
- 关于从oracle数据库中取记录的问题
- 简单问题:请教如何调用一个可执行文件?是用Winexec吗?并且要求该程序只能运行一次呢?
- 请大家帮我编译一下下面的程序,总是出现堆栈溢出,这个问题怎么解决,与系统设置有没有关系??
- 怎么做一个象OICQ那样的窗体?
- 请问有没有比较精彩,含实质内容的delphi资源(网站)?
- stringlist的疑难杂症啊!
- 在哪里能下到TMSNClient?
- 选中某个文件
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
但是有一个问题
我抓到的网页中含有其他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>
得到这样的内容,应该怎样编写正则表达式呢???
谢谢!
小弟感激不尽!
正则表达式怎样表示非(反匹配)的关系的呢?
譬如说我有一段文章《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!》中这一段之外的其他内容呢?