2011-07-27 65 views
0

我正在使用雅虎管道来分析RSS源。在每篇文章中,我想用正则表达式解析HTML代码,以查看字符串“Total Songs”之后的值是否大于7.在所有文章中,代码如下例所示进行了布局(使用行结束于相同的地点)。正则表达式不能与雅虎管道V2(使用V1)

这是我想要做的一个例子。在下面的代码,以提取值应为:

<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 &amp; 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> 

随着雅虎管道引擎的1.0版本,我用

(?<=Total.Songs\:.....)((8|9)|([1-9][0-9]+)) 

这曾经工作,但那时候,我得到的HTML格式有点不同(在Pipes引擎的不同位置插入了换行符)。现在我转移到了V2引擎(这是必要的,因为他们在8月1日逐步淘汰V1),它不会提取任何东西。

我认为它与</b>和之间的换行符有关,但即使我尝试了多种组合,但找不到一个可行的组合。

任何人都可以帮助我吗?

由于

回答

1

尝试此正则表达式:

Total Songs:\D*((?!0*[0-7](?!\d))\d+)(?!\d) 

的数量将被存储在第一个捕获组英寸

+0

工程就像一个魅力,非常感谢! – franmon

相关问题