Код1:
CODE ( html):
скопировать код в буфер обмена
<div id="sale-contact"> <h3 class="sale">Контактная информация:</h3> <dl class="sale-info contact"> <dt>Контактное лицо:</dt> <dd class="grey"> <big><strong>АЛЕКСЕЙ</strong></big> </dd><dt>E-mail:</dt> <dd> <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> </dd><dt>Город:</dt> <dd class="grey"> <big><strong>Москва</strong></big> </dd><dt>Телефон:</dt> <dd> <span class="dashed" rel="/?op=sale&act=getPhones&id=14946142-94209§ion_id=1&category_id=15" id="get-sale-phones">Показать телефон</span> </dd> </dl> </div>
Код2:
CODE ( html):
скопировать код в буфер обмена
<div id="sale-contact"> <h3 class="sale">Контактная информация:</h3> <dl class="sale-info contact"> <dt>Продавец:</dt> <dd class="grey"> <big><strong><a href="/clients/6085.html">MSK1438</a></strong></big> </dd> <dt>Контактное лицо:</dt> <dd> <big><strong>Комиссионный магазин АвтоДворик</strong></big> </dd> <dt>E-mail:</dt> <dd class="grey"> <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> </dd> <dt>Город:</dt> <dd> <big><strong>Москва</strong></big> </dd> <dt>Телефон:</dt> <dd class="grey"> <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> </dd> </dl> </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):
скопировать код в буфер обмена
#(Контактное лицо:\</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):
скопировать код в буфер обмена
#(Контактное лицо:</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)
|