Невозможно вывести массив регулярных выражений с помощью echo.Примечание: неопределенное смещение: 0. Как это исправить? - PullRequest
1 голос
/ 04 августа 2011
$from= "You can win $200,000 tonight.";
$output = preg_match("/\$[\d\,]+/", $from, $matches);
echo $matches[0];

Это не работает.Это дает мне эту ошибку:

Примечание: неопределенное смещение: 0

Я хочу вывести «$ 200 000».

Заранее спасибо за любую помощь.

Ответы [ 3 ]

3 голосов
/ 04 августа 2011

try

$output = preg_match("/\\$[\d\,]+/", $from, $matches);

Вы должны дважды выбрать символ $ с двойным \

http://ideone.com/digsP

1 голос
/ 04 августа 2011

Ты выстрелил себе в колено с двойными кавычками регулярного выражения. Попробуйте это:

$from= "You can win $200,000 tonight.";
if(preg_match("/\$[\d\,]+/", $from, $matches)) {
  echo $matches[0];
}

Видите ли, нет совпадений. Вы должны сбежать дважды, один раз для строки и один раз для механизма регулярных выражений:

$from= "You can win $200,000 tonight.";
if(preg_match("/\\\$[\d\,]+/", $from, $matches)) {
  echo $matches[0];
}

НТН, CK

0 голосов
/ 04 августа 2011

Просто убеги $ дважды.

$output = preg_match("/\\$[\d\,]+/", $from, $matches);
...