Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Регулярное выражение preg_match для таблицы

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Как правильно составить выражение?
Jeick9
Отправлено: 10 Декабря, 2014 - 20:44:47
Post Id


Новичок


Покинул форум
Сообщений всего: 23
Дата рег-ции: Дек. 2014  


Помог: 0 раз(а)




Здравствуйте.
Пытаюсь вытянуть значения с таблицы через preg_match, но не получается правильно составить регулярное выражения. Подскажите пожалуйста как правильно составить выражения для того чтобы получить значение 9.95 $ из таблицы, при условии что в первом <td> значение например text?
CODE (text):
скопировать код в буфер обмена
  1. <td class="title" id="" width="15%">text</td>
  2.                    
  3.                     <td width="15%"> 9.95 $</td>
 
 Top
GoDr
Отправлено: 15 Января, 2015 - 10:45:26
Post Id



Посетитель


Покинул форум
Сообщений всего: 446
Дата рег-ции: Янв. 2015  
Откуда: Тамбов


Помог: 17 раз(а)




Например, так
PHP:
скопировать код в буфер обмена
  1. $a = '#<td.*?>\s*([\d\.]+)\s*\$\s*<\/td>#is';
  2. $b = '<td class="title" id="" width="15%">text</td>
  3.        <td width="15%"> 9.95 $</td>
  4.        <td width="15%"> 5.75 $</td>
  5.        <td class="title" id="" width="15%">text</td>';
  6.  
  7. preg_match_all($a, $b, $tmp);
  8. print_r($tmp[1]);
  9.  


Если нужно с $, то
PHP:
скопировать код в буфер обмена
  1. $a = '#<td.*?>\s*([\d\.]+\s*\$)\s*<\/td>#is';

(Отредактировано автором: 15 Января, 2015 - 10:47:07)



-----
Система управления веб-содержимым Lotos CMS
 
 Top
andatr
Отправлено: 27 Января, 2015 - 20:37:34
Post Id


Новичок


Покинул форум
Сообщений всего: 7
Дата рег-ции: Янв. 2015  


Помог: 0 раз(а)




a='# *\d\.\d\d *\$ *(?=</td>)#is'
 
 Top
GoDr
Отправлено: 28 Января, 2015 - 07:59:02
Post Id



Посетитель


Покинул форум
Сообщений всего: 446
Дата рег-ции: Янв. 2015  
Откуда: Тамбов


Помог: 17 раз(а)




andatr, а что выдаст твой вариант если текст будет таким?
CODE (html):
скопировать код в буфер обмена
  1. <td width="15%"> 12.95 $</td>
  2. <td width="15%"> 25.75 $</td>
  3. <td width="15%"> 5.0 $</td>
  4.  

Или к примеру будет встречаться табуляция или перенос строки?

(Отредактировано автором: 28 Января, 2015 - 08:00:21)



-----
Система управления веб-содержимым Lotos CMS
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Регулярные выражения »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB