【发布时间】:2008-11-29 15:28:29
【问题描述】:
我正在尝试使用 PHP 和正则表达式从网页中获取价格。价格格式为 123.12 英镑或 123.12 美元(即英镑或美元)。
我正在使用 libcurl 加载内容。然后其输出将进入preg_match_all。所以看起来有点像这样:
$contents = curl_exec($curl);
preg_match_all('/(?:\$|£)[0-9]+(?:\.[0-9]{2})?/', $contents, $matches);
到目前为止很简单。问题是,PHP 根本不匹配任何东西——即使页面上有价格。我已将其范围缩小到“£”字符存在问题 - PHP 似乎不喜欢它。
我认为这可能是字符集问题。但无论我做什么,我似乎都无法让 PHP 匹配它!有人有什么想法吗?
(编辑:我应该注意,如果我尝试使用相同的正则表达式和页面内容使用Regex Test Tool,它可以正常工作)
【问题讨论】:
标签: php regex character-encoding