HTML: <p class="cena"> Цена: 5 $ / 111(random число) </p> Как можно выцепить 5, когда столько пробелов и переводов строк?
множители для этого существуют \s - пробел \s* - нет пробела, есть пробел, несколько пробелов \s+ - один или несколько пробелов. Это раз. Два: не нравятся пробелы - убери их =) ЗЫ: а регулярки я писать не умею =(
PHP: <?php $str = <<<HTML <p class="cena"> Цена: 5 $ / 111(random число) </p> HTML; preg_match('/Цена:\s+(\d+)\s+\$/is', $str, $matches); echo $matches[1]; ?>
В этом случае вы делаете необходимым наличие пробелов. Лучше \s+ заменить на \s*. Рискну предположить, что цена еще может быть не целым значением, тогда нужно учитывать наличие точки/запятой. Вопрос к ТС: кто вас научил использовать знак доллара после ценника?
У регулярок есть замечательный модификатор x, позволяющий игнорировать пробелы (и допускать комментарии). В таком случае пробелы необходимо указывать явно.
titch >Рискну предположить, что цена еще может быть не целым значением, тогда нужно учитывать наличие точки/запятой. Да вы правы, такое может быть , как можно это учесть? Пробовал как то так, но не захватывает числа с точкой/запятой: 5.33 Код (Text): preg_match('/Цена:\s+([0-9]*\.*\,?[0-9])\s+\$/is', $str, $matches);