Php 正则表达式匹配正确的文本
我在尝试从文本中提取正确的值时遇到问题 我想从以下文本中提取Php 正则表达式匹配正确的文本,php,regex,Php,Regex,我在尝试从文本中提取正确的值时遇到问题 我想从以下文本中提取14.50(这是字符串中的最后一个十进制数) 字符串 <span class="ob-pricedetails">Price:</span> $57.71<span style="color: #666666; font-size: 12px;">(£37.61)</span><br/><span style="font-size: 1
14.50
(这是字符串中的最后一个十进制数)
字符串
<span class="ob-pricedetails">Price:</span> $57.71<span style="color: #666666; font-size: 12px;">(£37.61)</span><br/><span style="font-size: 11px; color: #000000;">Shipping (UK):</span>$14.50
价格:$;57.71(£;37.61)
航运(英国):$;14.50
我一直在尝试使用下面的正则表达式
regex
(?<=Shipping \(UK\):<\/span>£|$)(.*)
(?这将起作用:
preg_match('/Shipping \(UK\):<\/span>$([0-9]+\.[0-9]+)/', $html, $matches);
preg_match(“/Shipping\(UK\):$;([0-9]+\[0-9]+/”,$html,$matches);
当然,您应该听每个人建议您使用DOM解析器而不是正则表达式。这将起作用:
preg_match('/Shipping \(UK\):<\/span>$([0-9]+\.[0-9]+)/', $html, $matches);
preg_match(“/Shipping\(UK\):$;([0-9]+\[0-9]+/”,$html,$matches);
当然,你应该听每个人建议你使用DOM解析器而不是正则表达式。这应该对你有用
[0-9\.]+$
这应该对你有好处
[0-9\.]+$
为什么不直接使用javascript从DOM中提取值呢?贪婪。使用*?
或/U
标志。最好使匹配更加具体。@Blaine因为我正在抓取一个网站…哦,看,mk_89正试图使用正则表达式解析HTML--这不是一个好主意…最好使用解析器()对于这一点。@Buggabill这看起来很有趣,我会看看它。为什么你不直接使用javascript从DOM中提取值?贪婪。使用*?
或/U
标志。更好的是使匹配更加具体。@Blaine因为我正在抓取一个网站…哦,看,mk_89试图使用正则表达式解析HTML--不是一个好的idea、 …最好使用解析器()。@Buggabill这看起来很有趣,我来看看