2013-11-17 6 views
1

Я использую регулярное выражение для анализа валюты в этом формате. Извлечь цену на выскабливание Amazon.comRegex не работает во время разбора цены

$current_price=$doc['#current-price']->text(); 

$this->rawPrice=$current_price;//Value =$9.65 
$price_elements=array(); 
preg_match("/(\$|£)([0-9,\.]+)/", $current_price,$price_elements); 
$this->price_elements=$price_elements;//Array is empty 
$this->price=$price_elements[2];//NO index found warning 

Я не могу понять, почему регулярное выражение не разбирая значение $ 9,65. Я тоже пробовал его в regexr, и он отлично работает. Его вывод как json, поэтому я знаю, что цена получена правильно. Просто не знаю, почему он не разбирает.

+0

почему царапать, когда у них есть бесплатный API? – TecBrat

+1

кажется настолько странным, что я надел этот тестер: http://www.phpliveregex.com/p/245 и отлично работает – Guilherme

+0

см. 4000+ голосов здесь. Http://stackoverflow.com/questions/1732348 – TecBrat

ответ

1

Проблема заключается в том, что обратная косая черта используется для выхода $ и . должны быть экранированы, а

так \$ должно быть: \\$ и \. должны быть \\.

Смежные вопросы