0

私は正規表現にかなり慣れておらず、Notepad++で少し練習しています。Yahooから株式関連のデータを抽出しようとしていますが、経験がやや不足しています。多分誰かが私に手を差し伸べることができます。よろしくお願いします。

私が解析しようとしているものの例は次のとおりです。

<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、3,857、1,041の数字を抽出しようとします。私がこれまでに管理したことは次のとおりです。

<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 に答える