|
|
|
| Для выдирания текста (выделено жирным)
<td class="rates" style="padding-top: 15px; padding-bottom: 5px; padding-left: 10px;" align="left"><img src="images/rates/usd.gif"> USD 12.9049</td>
|
| |
|
|
|
|
|
|
|
для: OLi
(16.06.2010 в 00:16)
| |
<?php
$str="<td class=\"rates\" style=\"padding-top: 15px; padding-bottom: 5px; padding-left: 10px;\" align=\"left\"><img src=\"images/rates/usd.gif\"> USD 12.9049</td>";
preg_match("#([\d]+\.[\d]+)#i",$str,$out);
echo $out[1];
?>
|
| |
|
|
|
|
|
|
|
для: Gubichev
(16.06.2010 в 01:04)
| | Находит не все числа, просмотрел массив..... | |
|
|
|
|
|
|
|
для: OLi
(16.06.2010 в 01:40)
| | А какие числа не находит? Возможно целые?
P.S. Если нужно найти больше одной подстроки (более одного числа) в одном тексте, тогда используйте preg_match_all | |
|
|
|
|
|
|
|
для: Gubichev
(16.06.2010 в 03:13)
| | Ответ прям в ТОЧКУ! Спасибо, помогло! | |
|
|
|
|
|
|
|
для: OLi
(16.06.2010 в 00:16)
| | [поправлено модератором] | |
|
|
|
|
автор: вред (16.06.2010 в 10:02) |
|
|
для: neadekvat
(16.06.2010 в 02:13)
| | А парсер на месте парсера применяет "жадный" поиск: пока есть совпадения с повторяющимся шаблоном, они будут включаться в результат. Получается:
Как минимум одна цифра (если есть больше цифр, то все, что есть), точка, затем как минимум одна цифра (если есть больше цифр, то все, что есть).
Жадность выключается во всём жаблоне модификатором U, либо для конкретного квантификатора с помощью знака "?":
\d+?
будет совпадать с минимальным количеством цифр (если это и есть весь шаблон, то будет совпадать с одной цифрой). | |
|
|
|
|
|
|
|
для: вред
(16.06.2010 в 10:02)
| | Если честно мало что понял, а именно как подредактировать, чтоб по шаблону находились все числа Формата 23.3242...Сейчас парсер находит только первое вхождение и заносит в массив...Дальше не парсит! | |
|
|
|
|
автор: вред (16.06.2010 в 13:03) |
|
|
для: OLi
(16.06.2010 в 12:22)
| | Выше уже советовали вместо preg_match использовать preg_match_all
После "слепой" замены можно просмотреть структуру выходного массива с помощью:
| |
|
|
|
|
|
|
|
для: вред
(16.06.2010 в 10:02)
| | Мой пост удалили :'( Можно было и только первые слова удалить.
Не проще ли поставить в качестве второго параметра [^<] | |
|
|
|
|
|
|
|
для: neadekvat
(16.06.2010 в 12:41)
| | А чем плох [\d]+ ? | |
|
|
|
|
|
|
|
для: Gubichev
(16.06.2010 в 13:28)
| | тем, что автор не сказал, чего там в теге у него выделено. (вернее сказал, что у него там текст.)
Вдруг там не только число может появиляться... | |
|
|
|
|
|
|
|
для: Trianon
(16.06.2010 в 13:44)
| | А вот как выдернуть Текст из
<b class=" m22gray">Чт.</b>
|
| |
|
|
|
|
|
|
|
для: OLi
(16.06.2010 в 19:14)
| |
<?php
preg_match ("#/<b\sclass=\"\sm22gray\">([^<]+)#", $text, $matches);
?>
|
| |
|
|
|