0

我在尝试从文本中提取正确值时遇到问题

我想14.50从以下文本中提取(这是字符串中的最后一个十进制数字)。

细绳

<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 回答