jincute 发表于 2011-9-8 11:25:48

请教:如何匹配关键字提取包含关键字的表格内容?

本帖最后由 jincute 于 2011-11-8 16:59 编辑

网页里面包含好多个表格,大概格式是这样的:
<table>……<tr>……<td>……</td>……</tr>……</table>
中间有好多个<tr>嵌套。

想实现的功能是搜索里面的关键字然后提取整个<tr></tr>里面的内容(不包含html代码)
比如:
…… <tr><td>A</td><td>B</td><td>C</td></tr>……
如果整个网页搜索到B,则返回<tr>便签里面的A,B,C内容放入数组里面。

请教一下,可以有什么正则表达实现这个功能吗?

想使用两次正则的方法去提取想要的内容,第一次正则已经提取了如下信息:
High Performance<br> ');">GSM High Performance

二次正则想只提取">后面的GSM High Performance,这个应该怎么写呢?
希望得到大牛的回复!

xms77 发表于 2011-9-8 20:51:49

本帖最后由 xms77 于 2011-9-8 20:52 编辑

$html = "laufojewjfdosaj<tr><td>A</td><td>B</td><td>C</td></tr>……"
$temp = StringRegExp($html, "<tr>.*</tr>", 1)
MsgBox(0,"",$temp)
$Uneed = StringRegExp($temp,"<td>([^<]*)</td>",3)
For $i = 0 To UBound($Uneed)-1
        MsgBox(0,"",$Uneed[$i])
Next不知道是不是能满足你的要求?

afan 发表于 2011-9-8 21:59:50

弄个完整的表格源码试试~ 尽量考虑多种情况。
有时间来折腾下~ 初步估计要两次正则,首先提取符合要求的段落,再提取文本到数组

黑色袜子 发表于 2011-9-9 13:46:04

如果是表格的话,我记得有个函数可以获取表格的内容到数组。楼主自己看帮助吧。帮助有。

huaisha1224 发表于 2011-9-9 16:25:21

表示不会、看看高手怎么解决的

35888894 发表于 2011-9-9 16:33:36

楼主可以尝试用这个函数搞搞看,虽然山寨不高效,但是个人觉得挺好用。。。;截取项目中间的字符串
Func QUZJDX($stringc,$sstring,$estring,$cs=1)
If StringInStr($stringc,$sstring,1,$cs)<=0 Then Return ""
Local $start=StringInStr($stringc,$sstring,1,$cs)+StringLen($sstring)
Local $end=StringInStr($stringc,$estring,0,1,$start)
If $end-$start<=0 Then Return ""
Return StringStripWS(StringMid($stringc,$start,$end-$start),3)
EndFunc
页: [1]
查看完整版本: 请教:如何匹配关键字提取包含关键字的表格内容?