0

テキストから正しい値を抽出しようとして問題が発生しています

14.50次のテキスト (文字列の最後の 10 進数)から抽出したいと思います。

ストリング

<span class="ob-pricedetails">Price:</span> &#036;57.71<span style="color: #666666; font-size: 12px;">(&#163;37.61)</span><br/><span style="font-size: 11px; color: #000000;">Shipping (UK):</span>&#036;14.50

次の正規表現を使用しようとしています

正規表現

(?<=Shipping \(UK\):<\/span>&#163;|&#036;)(.*)

奇妙な理由で次の結果を返します

57.71<span style="color: #666666; font-size: 12px;">(&#163;37.61)</span><br/><span style="font-size: 11px; color: #000000;">Shipping (UK):</span>&#036;14.50

私は何を間違っていますか?任意の助けをいただければ幸いです。

4

2 に答える 2

2

これはうまくいきます:

preg_match('/Shipping \(UK\):<\/span>&#036;([0-9]+\.[0-9]+)/', $html, $matches);

もちろん、正規表現の代わりに DOM パーサーを使用することを提案するすべての人に耳を傾ける必要があります。

于 2012-08-08T18:19:47.993 に答える
1

これでうまくいくはずです。

[0-9\.]+$
于 2012-08-08T18:24:49.047 に答える