Intereting Posts
Хранение большого файла размером 100 МБ в Мондоббе Как подключиться к экземпляру RAD Amazon MySQL через PHP через SSL Почему Apache выполняет файлы .php.html как PHP? Получение кодировки = «UTF-8» standalone = «да» с использованием PHP asXML и SimpleXMLElement Я не могу загрузить PDF в мою базу данных mysql Кодовое обозначение: код автоинкремента ошибок Формирование даты и фильтров Yii Рекомендации PHP: Im загружает массив $ GLOBALS с большим количеством информации, которая будет использоваться между моими php-страницами Как долго mysql_connect остается открытым? ошибка при разборе json-данных с быстрым «Данные не могут быть прочитаны, потому что они не в правильном формате». С помощью десятичных значений PHP SOAP Процедура 'functionName' отсутствует нажмите новое значение для внутреннего массива mongodb – mongodb / php Как добавить поддержку класса DateTime в php 5.1.6 Планировщик Laravel запускается дважды Ежедневно в определенные часы

PHP и preg_match Regex вывести число с десятичной строкой из строки

Довольно базовый материал здесь, пытаясь вытащить номер 14.5 из этой строки с использованием регулярных выражений и php, но я не могу получить синтаксис правильно. Кроме того, число является динамическим и может не всегда быть десятичным, но целью здесь является попытка вытащить число между словом « Weight: и </li> :

  <ul> <li>Manufacturer: something</li> <li>Model: 1216D101</li> <li>Condition: New</li> <li>Dimensions: 12" x 16"</li> <li>Sold by the Dozen</li> <li>Weight: 14.5 Lbs.</li> </ul> 

Это то, что у меня есть до сих пор, и попробовал варианты, но не ослабел:

 if (preg_match("/\Weight:\(\d+)\.(\d*?)\<\/li>/", $desc, $WEIGHT) == true) { echo $WEIGHT[0]; } 

Попробуйте это регулярное выражение:

 /Weight: ((?:\d+)(?:\.\d*)?)/ 

Соответствующий номер будет доступен в $WEIGHT[1] .

Если вы не хотите захватывать . в таких числах, как 123. .:

 /Weight: ((?:\d+)(?:\.\d+)?)/ 

Попробуй это:

 if (preg_match('/Weight: (\d+(\.\d+)?)/', $desc, $matches)) { echo $matches[1]; } 
 preg_match('<li>Weight: (\d+)\.?(\d+)?.+</li>', // ... 

Должно к трюку

если вы просто хотите соответствовать целому числу или десятичному значению

  if (preg_match('/^(\d+(\.\d+)?)$/',$num)) echo "$num is integer or decimal";