leenkon 发表于 2012-8-22 11:35:42

求助!正则表达式提取网页源码内容

求助!正则表达式的问题,获取一个网页源码,想要把下面部分部分的<span id="ID_7000012_NoChildTable_0_1_Answer" style="display:block"><div class="Answer"><TABLE width="100%" border=0 align="center" cellPadding=0 cellSpacing=3><TR><TD class="HideAnswer">正确答案:A</TD></TR></TABLE></div></span>提取出来。。
望高手解答2.具有蛋白质四级结构的蛋白质分子,在一级结构分析时发现</SPAN></TD></TR><TR><TD class="TestContent"><input type="radio" id="ID_7000012_NoChildTable_0_1_Reply_A" name="ID_7000012_NoChildTable_0_1_Reply" value="A"/><label for="ID_7000012_NoChildTable_0_1_Reply_A">A.具有一个以上N端和C端</label><br /><input type="radio" id="ID_7000012_NoChildTable_0_1_Reply_B" name="ID_7000012_NoChildTable_0_1_Reply" value="B"/><label for="ID_7000012_NoChildTable_0_1_Reply_B">B.只有一个N端和C端</label><br /><input type="radio" id="ID_7000012_NoChildTable_0_1_Reply_C" name="ID_7000012_NoChildTable_0_1_Reply" value="C"/><label for="ID_7000012_NoChildTable_0_1_Reply_C">C.具有一个N端和几个C端</label><br /><input type="radio" id="ID_7000012_NoChildTable_0_1_Reply_D" name="ID_7000012_NoChildTable_0_1_Reply" value="D"/><label for="ID_7000012_NoChildTable_0_1_Reply_D">D.具有一个C端和几个N端</label><br /><input type="radio" id="ID_7000012_NoChildTable_0_1_Reply_E" name="ID_7000012_NoChildTable_0_1_Reply" value="E"/><label for="ID_7000012_NoChildTable_0_1_Reply_E">E.一定有二硫键存在</label></TD></TR></TABLE><div style="text-align:center;"><TABLE width="95%" border=0 cellPadding=0 cellSpacing=0 id="ToolBar7000012"><TR><TD class="TestToolBar" ></TD></TR></TABLE></div><span id="ID_7000012_NoChildTable_0_1_Answer" style="display:block"><div class="Answer"><TABLE width="100%" border=0 align="center" cellPadding=0 cellSpacing=3><TR><TD class="HideAnswer">正确答案:A</TD></TR></TABLE></div></span><TABLE width="95%" border=0 align="center" cellPadding=0 cellSpacing=3><TR><TD><div class="TestFG"></div></TD></TR></TABLE><input name="ID_7000012_NoChildTable_0_1_Answer" type="hidden" value="A"><TABLE width="95%" border=0 align="center" cellPadding=0 cellSpacing=3><TR><TD class="TestMainTitle"><SPAN id="ID_3000182_NoChildTable_0_1_Color">

xiehuahere 发表于 2012-8-22 13:36:54

本帖最后由 xiehuahere 于 2012-8-22 15:15 编辑

回复 1# leenkon

1. 如果你所列出的就是网页内容的全部
$srcData = '2.具有蛋白质四级结构的蛋白质分子,在一级结构分析时发现</SPAN></TD></TR><TR><TD class="TestContent"><input type="radio" id="ID_7000012_NoChildTable_0_1_Reply_A" name="ID_7000012_NoChildTable_0_1_Reply" value="A"/><label for="ID_7000012_NoChildTable_0_1_Reply_A">A.具有一个以上N端和C端</label><br /><input type="radio" id="ID_7000012_NoChildTable_0_1_Reply_B" name="ID_7000012_NoChildTable_0_1_Reply" value="B"/><label for="ID_7000012_NoChildTable_0_1_Reply_B">B.只有一个N端和C端</label><br /><input type="radio" id="ID_7000012_NoChildTable_0_1_Reply_C" name="ID_7000012_NoChildTable_0_1_Reply" value="C"/><label for="ID_7000012_NoChildTable_0_1_Reply_C">C.具有一个N端和几个C端</label><br /><input type="radio" id="ID_7000012_NoChildTable_0_1_Reply_D" name="ID_7000012_NoChildTable_0_1_Reply" value="D"/><label for="ID_7000012_NoChildTable_0_1_Reply_D">D.具有一个C端和几个N端</label><br /><input type="radio" id="ID_7000012_NoChildTable_0_1_Reply_E" name="ID_7000012_NoChildTable_0_1_Reply" value="E"/><label for="ID_7000012_NoChildTable_0_1_Reply_E">E.一定有二硫键存在</label></TD></TR></TABLE><div style="text-align:center;"><TABLE width="95%" border=0 cellPadding=0 cellSpacing=0 id="ToolBar7000012"><TR><TD class="TestToolBar" ></TD></TR></TABLE></div><span id="ID_7000012_NoChildTable_0_1_Answer" style="display:block"><div class="Answer"><TABLE width="100%" border=0 align="center" cellPadding=0 cellSpacing=3><TR><TD class="HideAnswer">正确答案:A</TD></TR></TABLE></div></span><TABLE width="95%" border=0 align="center" cellPadding=0 cellSpacing=3><TR><TD><div class="TestFG"></div></TD></TR></TABLE><input name="ID_7000012_NoChildTable_0_1_Answer" type="hidden" value="A"><TABLE width="95%" border=0 align="center" cellPadding=0 cellSpacing=3><TR><TD class="TestMainTitle"><SPAN id="ID_3000182_NoChildTable_0_1_Color">'
$array = StringRegExp($srcData, '(?s)<span id=.*?>正确答案:.*?></span>', 3)
MsgBox(0, "", $array)


2. 如果你列出的只是网页内容的部分
$srcData = '前面还有很多内容,blahblahblah。。。。。。2.具有蛋白质四级结构的蛋白质分子,在一级结构分析时发现</SPAN></TD></TR><TR><TD class="TestContent"><input type="radio" id="ID_7000012_NoChildTable_0_1_Reply_A" name="ID_7000012_NoChildTable_0_1_Reply" value="A"/><label for="ID_7000012_NoChildTable_0_1_Reply_A">A.具有一个以上N端和C端</label><br /><input type="radio" id="ID_7000012_NoChildTable_0_1_Reply_B" name="ID_7000012_NoChildTable_0_1_Reply" value="B"/><label for="ID_7000012_NoChildTable_0_1_Reply_B">B.只有一个N端和C端</label><br /><input type="radio" id="ID_7000012_NoChildTable_0_1_Reply_C" name="ID_7000012_NoChildTable_0_1_Reply" value="C"/><label for="ID_7000012_NoChildTable_0_1_Reply_C">C.具有一个N端和几个C端</label><br /><input type="radio" id="ID_7000012_NoChildTable_0_1_Reply_D" name="ID_7000012_NoChildTable_0_1_Reply" value="D"/><label for="ID_7000012_NoChildTable_0_1_Reply_D">D.具有一个C端和几个N端</label><br /><input type="radio" id="ID_7000012_NoChildTable_0_1_Reply_E" name="ID_7000012_NoChildTable_0_1_Reply" value="E"/><label for="ID_7000012_NoChildTable_0_1_Reply_E">E.一定有二硫键存在</label></TD></TR></TABLE><div style="text-align:center;"><TABLE width="95%" border=0 cellPadding=0 cellSpacing=0 id="ToolBar7000012"><TR><TD class="TestToolBar" ></TD></TR></TABLE></div><span id="ID_7000012_NoChildTable_0_1_Answer" style="display:block"><div class="Answer"><TABLE width="100%" border=0 align="center" cellPadding=0 cellSpacing=3><TR><TD class="HideAnswer">正确答案:A</TD></TR></TABLE></div></span><TABLE width="95%" border=0 align="center" cellPadding=0 cellSpacing=3><TR><TD><div class="TestFG"></div></TD></TR></TABLE><input name="ID_7000012_NoChildTable_0_1_Answer" type="hidden" value="A"><TABLE width="95%" border=0 align="center" cellPadding=0 cellSpacing=3><TR><TD class="TestMainTitle"><SPAN id="ID_3000182_NoChildTable_0_1_Color">后面也还有很多内容,blahblahblah。。。。。。'
$desData = StringRegExpReplace($srcData, '(?s).*?2.具有蛋白质四级结构的蛋白质分子,在一级结构分析时发现.*?(<span id=.*?>正确答案:.*?></span>).*', '$1')
MsgBox(0, "", $desData)

我估计你要的是2
页: [1]
查看完整版本: 求助!正则表达式提取网页源码内容