我正在使用Yahoo Pipes来分析RSS提要。在每篇文章中,我想用正则表达式解析HTML代码,以查看字符串“Total Songs”之后的行上的值是否大于7.在所有文章中,代码的布局如下面的示例所示(带有行在相同的位置结束)。
以下是我想要做的一个例子。在以下代码中,要提取的值应为 10 :
<table BORDER="0" WIDTH="100%"><tr><td><table border="0" width="100%" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td ALIGN="CENTER" WIDTH="166" VALIGN="TOP"><a rel="nofollow" target="_blank" href="http://itunes.apple.com/preorder/bn2-1tw/id449071164?uo=1&v0=9988"><img border="0" src="http://a2.mzstatic.com/us/r1000/091/Music/73/0e/f0/mzi.gxsvtfmh.100x100-75.jpg"/></a></td>
<td width="10"><img alt="" width="10" height="1" src="http://r.mzstatic.com/images/spacer.gif"/></td>
<td width="95%"><b><a rel="nofollow" target="_blank" href="http://itunes.apple.com/preorder/bn2-1tw/id449071164?uo=1&v0=9988">Bn2 1Tw</a></b><br>
<a rel="nofollow" target="_blank" href="http://itunes.apple.com/artist/kobana/id424122973?uo=1&v0=9988">Kobana & Yane3dots</a><br><br>
<font size="3" FACE="Helvetica,Arial,Geneva,Swiss,SunSans-Regular"><b>Expected Release Date:</b>
August 17, 2011<br>
</font><font size="3" FACE="Helvetica,Arial,Geneva,Swiss,SunSans-Regular"><b>Total Songs:</b>
10</font><br>
<font size="3" FACE="Helvetica,Arial,Geneva,Swiss,SunSans-Regular"><b>Genre:</b>
<a rel="nofollow" target="_blank" href="http://itunes.apple.com/genre/music-electronic/id7?uo=1&v0=9988">Electronic</a></font><br>
<font size="3" FACE="Helvetica,Arial,Geneva,Swiss,SunSans-Regular"><b>Album Price:</b>
$1.99</font><br>
<font size="3" FACE="Helvetica,Arial,Geneva,Swiss,SunSans-Regular"><b>Copyright</b>
Proton LLC</font></td>
</tr>
</table></td></tr>
</table>
使用Yahoo Pipes引擎的第1版,我使用了
(?<=Total.Songs\:.....)((8|9)|([1-9][0-9]+))
过去曾经工作过,但是当时我得到的HTML格式有点不同(换行符插入不同于Pipes引擎的地方。)现在我转移到V2引擎(这是必要的,因为他们在8月1日逐步淘汰V1),它没有提取任何东西。
我认为它与</b>
和 10 之间的换行有关,但即使我尝试了多种组合,我也找不到一种可行的。
有人能帮助我吗?
由于
答案 0 :(得分:1)
试试这个正则表达式:
Total Songs:\D*((?!0*[0-7](?!\d))\d+)(?!\d)
该号码将存储在第一个捕获组中。