0

我对正则表达式相当陌生,并且使用 Notepad++ 进行了一些练习。我正在尝试从雅虎提取一些与股票相关的数据,但有些缺乏经验。也许有人可以帮我一把。将不胜感激。

我尝试解析的一个例子是:

<strong>230.00</strong></a></td><td class="yfnc_tabledata1"><a href="http://ca.finance.yahoo.com/q?s=AMZN121026C00230000">AMZN121026C00230000</a></td><td class="yfnc_tabledata1" align="right"><b>9.35</b></td><td class="yfnc_tabledata1" align="right"><span id="yfs_c10_amzn121026c00230000"><img style="margin-right:-2px;" src="op_files/up_g.gif" alt="Up" border="0" height="14" width="10"> <span class="yfi-price-change-green">0.35</span></span></td><td class="yfnc_tabledata1" align="right">9.25</td><td class="yfnc_tabledata1" align="right">9.40</td><td class="yfnc_tabledata1" align="right">3,857</td><td class="yfnc_tabledata1" align="right">1,041</td></tr><tr><td class="yfnc_tabledata1" nowrap="nowrap">

我基本上尝试提取数字 230.00、9.35、0.35、9.25、9.40、3857、1041。到目前为止我管理的是:

<strong>(\d.*?)</strong>.*?<b>(.*?)<

但这真的很慢。到目前为止是正确的吗?

4

2 回答 2

0

一个可能更快的变体可能是(?<=>)(\d{1,3}(?:,\d{3})*+(?:\.\d+)?)(?=<) 它只匹配 > 和 < 之间的数字,忽略其余的......

但请记住,就像 SomeKittens 所说:“一般来说,用正则表达式解析 HTML 是个坏主意……”

于 2012-10-26T20:08:37.560 回答
0

演示

你可以有这个例子,将匹配tag和它的数字,这样你就可以对它们做任何你想做的事情。您甚至可以按标签更改[a-z]+过滤(span|b|td|whatever)

于 2012-10-26T20:11:06.857 回答