我正在尝试解析 PayPal HTML 电子邮件以获取不同的项目。例如,其中显示了所有购买的商品,以及它们的价格、单位和总数。
这是<table>
我要解析的:
<table align="center" border="0" cellpadding="0" cellspacing="0" style="clear:both;color:#333!important;font-size:12px;font-family:arial,helvetica,sans-serif" width="598px">
<tbody>
<tr>
<td style="border:1px solid #ccc;border-right:none;border-left:none;padding:5px 10px 5px 10px!important;color:#333333" width="348" align="left">Description</td>
<td style="border:1px solid #ccc;border-right:none;border-left:none;padding:5px 10px 5px 10px!important;color:#333333" width="100" align="right">Unit price</td>
<td style="border:1px solid #ccc;border-right:none;border-left:none;padding:5px 10px 5px 10px!important;color:#333333" width="50" align="right">Qty</td>
<td style="border:1px solid #ccc;border-right:none;border-left:none;padding:5px 10px 5px 10px!important;color:#333333" width="80" align="right">Amount</td>
</tr>
<tr>
<td valign="top" align="left" style="border-bottom:none;padding:10px"><a href="http://cgi.ebay.es/ws/eBayISAPI.dll?ViewItem&item=171154674852" target="_blank">FUNDA PIEL FUCSIA PARA BQ AQUARIUS 4.5. GRAN CALIDAD.</a><br>Item# 171154674852</td>
<td valign="top" align="right" style="border-bottom:none;padding:10px">€3,50 EUR</td>
<td valign="top" align="right" style="border-bottom:none;padding:10px">1</td>
<td valign="top" align="right" style="border-bottom:none;padding:10px">€3,50 EUR</td>
</tr>
<tr>
<td valign="top" align="left" style="border-bottom:none;padding:10px"><a href="http://cgi.ebay.es/ws/eBayISAPI.dll?ViewItem&item=171154674852" target="_blank">FUNDA PIEL ROJA PARA IPHONE 4.5. GRAN CALIDAD.</a><br>Item# 171154674852</td>
<td valign="top" align="right" style="border-bottom:none;padding:10px">€10,50 EUR</td>
<td valign="top" align="right" style="border-bottom:none;padding:10px">1</td>
<td valign="top" align="right" style="border-bottom:none;padding:10px">€10,50 EUR</td>
</tr>
</tbody>
</table>
我使用 match 来检测和捕获不同的变量(Ruby):
unless /thePreviousRegexp/.match(body).nil?
item = /thePreviousRegexp/.match(body)[:item]
price_unit = /thePreviousRegexp/.match(body)[:price_unit]
end
好的,当我只有一件物品时它可以工作。但是,当我有多个时,它只需要最后一个。我想抓住他们所有人。
我该怎么做?我将属于表的 < tr > 放在 ()+ 之间,这意味着模式可以重复一次或多次。但这似乎不起作用。