Помогите, кто знает как побороть регулярне выражение

rudik

Developer
Помогите, кто знает как побороть регулярне выражение

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

Есть текст: (большое количество тегов среди которых хранится полезная информация)

PHP:
<TR><TD align=center valign=middle bgColor=#ffffff>
<P align=center>[B]840 USD[/B]</P></TD><TD vAlign=middlebgcolor=#FFFFFF align=middle>
<P align=center>[B]100[/B]</P></TD>
<TD vAlign=middlebgcolor=#FFFFFF align=left><P align=left>&nbsp; долларов США </P></TD>
<TD vAlign=middlebgcolor=#FFFFFF align=right>[B]532.9000[/B] &nbsp;</TD></TR>
<TR>
Необходимо вытянуть все значение вне тегов, идущие после 840 USD, а именно 100 и 532.9000
 

rusan

Новичок
если там только цифиры и цифиры с точкой, то можно попробовать такое
$pervoe = preg_replace("/(.*?)$ff(.*?)[\>\]](\d+\.?\d*)(.*?)[\>\]](\d+\.?\d*)(.*)/s", "\\3" ,$text);

$vtoroe = preg_replace("/(.*?)$ff(.*?)[\>\]](\d+\.?\d*)(.*?)[\>\]](\d+\.?\d*)(.*)/s", "\\5" ,$text);
 

rudik

Developer
Да, все это хорошо, но как заставить это регулярное выражение брать первое попавшееся ему значение. Потому как ХТМЛ строк, которые я привел в примере много, а это регулярное выражение возвращает только последние значения в строке.
 

camel

Новичок
вообще рекомендовал бы тебе отказаться от регэкспов, при размере строки более 2К получишь тормоза.... недавно пришлось писать выдиралку довольно большого сайта, отказался от регэкспов почти на всех уровнях, используя только замену строчками - эффективность на 20% выше, хотя код разросься почти в два раза =)
 
Сверху