Проблема со сравнением строк.

Alexey(Eburg)

Новичок
Проблема со сравнением строк.

Нужно нужно в строковой переменной $contents найти все денежные выражения типа $99.89 (а они там точно есть) и записать их в массив.
Может кто подскажет новичку что в моем коде неверно, все время условие валится в else, хотя не должно!!! Может я маску неверно задаю?


$pattern = "(^\$[0-9 ]+\.[0-9]+$)";
if (eregi($pattern, $contents, $quote))
{-----\\-----}
else
{-----\\-----}
 

IntenT

SkyDiver
конечно неверно - убери начало и конец строки из петтерна
 

Dark Knight

Guest
Re: Проблема со сравнением строк.


$pattern = "(^\$[0-9 ]+\.[0-9]+$)";
if (eregi($pattern, $contents, $quote))
{-----\\-----}
else
{-----\\-----} [/B]

Как я понимаю ситуацию:
^ - это начало ( а $ - конец ) строки, тебе же нужно начало слова (< или \b)

Попробуй :
$pattern = "(\b\$[0-9 ]+\.[0-9]+\b)";
 

Blindman

Новичок
1. Начало и конец строки из паттерна убрать
2. Скобки убрать
3. $ заслэшить
4. Использовать [m]preg_match_all[/m]
 

Alexey(Eburg)

Новичок
$pattern = "\$[0-9]+\.[0-9]+";
$contents = ";aodfhsiofhdgoisdgdf sdfs $85.16 sdfsdhfg";
if (eregi($pattern, $contents, $quote))
{
echo $quote[1];
}
else
{
echo 'Значение недоступно';
};

Выводит 'Значение недоступно'! Ваще ничего не пойму! HELP!
 
Сверху