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 :: Помогите найти ошибку, либо переписать выражение

 PHP.SU

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


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

> Без описания
kir55rus
Отправлено: 17 Января, 2012 - 08:33:27
Post Id


Новичок


Покинул форум
Сообщений всего: 52
Дата рег-ции: Янв. 2012  
Откуда: Омск, Россия


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




Код1:

CODE (html):
скопировать код в буфер обмена
  1. <div id="sale-contact">
  2. <h3 class="sale">Контактная информация:</h3>
  3. <dl class="sale-info contact">
  4. <dt>Контактное лицо:</dt>
  5. <dd class="grey">
  6. <big><strong>АЛЕКСЕЙ</strong></big>
  7. </dd><dt>E-mail:</dt>
  8. <dd>
  9. <big><a class="ligthWindow" id="show-pm-form" href="http://users.auto.ru/feed/4998443.html?subj=Обратная связь ALL.AUTO.RU&body=Вопрос по объявлению о продаже http://cars.auto.ru/cars/used/sale/14946142-94209.html" target="_blank" onmouseover="window.status=(' ');return true;" onmouseout="window.status=('');return true;">Отправить личное сообщение</a></big>
  10. </dd><dt>Город:</dt>
  11. <dd class="grey">
  12. <big><strong>Москва</strong></big>
  13. </dd><dt>Телефон:</dt>
  14. <dd>
  15. <span class="dashed" rel="/?op=sale&act=getPhones&id=14946142-94209&section_id=1&category_id=15" id="get-sale-phones">Показать телефон</span>
  16. </dd>
  17. </dl>
  18. </div>


Код2:

CODE (html):
скопировать код в буфер обмена
  1. <div id="sale-contact">
  2.                 <h3 class="sale">Контактная информация:</h3>
  3.                 <dl class="sale-info contact">
  4.                    
  5.                     <dt>Продавец:</dt>
  6.                     <dd class="grey">
  7.                         <big><strong><a href="/clients/6085.html">MSK1438</a></strong></big>
  8.                     </dd>
  9.                    
  10.                     <dt>Контактное лицо:</dt>
  11.                     <dd>
  12.                         <big><strong>Комиссионный магазин АвтоДворик</strong></big>
  13.                     </dd>
  14.                    
  15.                     <dt>E-mail:</dt>
  16.                     <dd class="grey">
  17.                         <big><a class="ligthWindow" id="show-pm-form" href="http://users.auto.ru/feed/4026850.html?subj=Обратная связь ALL.AUTO.RU&body=Вопрос по объявлению о продаже http://cars.auto.ru/cars/used/sale/15593359-489d33.html" target="_blank" onmouseover="window.status=(' ');return true;" onmouseout="window.status=('');return true;">Отправить личное сообщение</a></big>
  18.                     </dd>
  19.                    
  20.                     <dt>Город:</dt>
  21.                     <dd>
  22.                         <big><strong>Москва</strong></big>
  23.                     </dd>
  24.                    
  25.                     <dt>Телефон:</dt>
  26.                     <dd class="grey">
  27.                         <ul class="sale-phones"><li><strong>+7 (910) 495-9996</strong> <span> с 10:00 до 21:00</span></li><li><strong>+7 (925) 542-0204</strong> <span> с 10:00 до 21:00</span></li><li><strong>+7 (495) 542-0204</strong> <span> с 10:00 до 21:00</span></li></ul>
  28.                     </dd>
  29.                    
  30.                 </dl>
  31.             </div>



Необходимо написать регулярное выражение, которое будет подходить под оба исходника и искать Имя (из контактного лица), ссылку на номер телефона (или сам телефон, если доступен)

если использовать регулярные выражений отдельно друг от друга, то всё работает:

Имя: |Контактное лицо:\</dt\>\r\n\<dd class=.grey.\>\r\n\<big\>\<strong\>(.+)\</strong\>|iU
Ссылка на телефон: |\<span class=.dashed. rel=./(.+). id=.get-sale-phones.\>Показать телефон\</span\>|iU
Сам телефон: |Телефон:\</dt\>\r\n\<dd\>\r\n\<ul class=.sale-phones.\>(\<li\>.+\</li\>)\</ul\>|iU

Но как только пытаюсь их добавить в конструкцию: #(ИМЯ){1}((СКРЫТЫЙ ТЕЛЕФОН)|(ОТКРЫТЫЙ ТЕЛЕФОН)){1}#iU всё перестает работать, где я допустил ошибку?

мой код:
CODE (htmlphp):
скопировать код в буфер обмена
  1. #(Контактное лицо:\</dt\>\r\n\<dd class=.grey.\>\r\n\<big\>\<strong\>(.+)\</strong\>){1}((\<span class=.dashed. rel=./(.+). id=.get-sale-phones.\>Показать телефон\</span\>)|(Телефон:\</dt\>\r\n\<dd\>\r\n\<ul class=.sale-phones.\>(\<li\>.+\</li\>)\</ul\>)){1}#iU


Буду благодарен, если поможете найти ошибку

Проблему решил, вот рег. выражение:

CODE (htmlphp):
скопировать код в буфер обмена
  1. #(Контактное лицо:</dt>.*\r\n.*<dd.*>.*\r\n.*<big><strong>(.+)</strong></big>)((.*\r\n.*)*)((<span class=.dashed. rel=./(.+). id=.get-sale-phones.>Показать телефон</span>)|(<dt>Телефон:</dt>.*\r\n.*<dd.*>.*\r\n.*<ul class=.sale-phones.>((<li><strong>.+</strong>.*<span>.+</span></li>)+)</ul>)){1}#iU


Закройте тему

(Отредактировано автором: 17 Января, 2012 - 13:51:42)

 
 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