Нужна помощь с регуляркой

Статус
В этой теме нельзя размещать новые ответы.

Ruslanych

Создатель
Регистрация
17 Фев 2009
Сообщения
37
Реакции
8
Помогите плиз.
Есть текст:
HTML:
<div class="Container">
<a style="text-decoration: none;" href="LINK1">
<div id="highlight-12" onmouseover="showTrackers('inline'); setYear(12)" 
class="activeHighlight">2008</div>
</a>
</div>
В результате нужно получить LINK1 2008.
LINK1 2008 - переменные.
Заранее благодарен.
 
ВЫ неполно описали задачу, а именно, на что из ващего кода надо привязыватся
впрочем как и язык реализации
ПОпробую угадать(синтаксис PHP:(
первая ссылка внутри <div class="Container">
Код:
/<div class="Container">.*<a[^>]*href="([^"]*)"/sU
первый DIV внутри <div class="Container">, у которого ID начинается на highlight-
Код:
/<div class="Container">.*<div id="highlight-[^>]*>([^<]*)<"/sU
 
Язык php.
Регулярка нужна для функции preg_match_all.
В результате нужно получить массив строк вида: LINK1 2008.
 
Помогите плиз.
В результате нужно получить LINK1 2008.
PHP:
<?php
$cod = "<div class=\"Container\">
<a style=\"text-decoration: none;\" href=\"LINK1\">
<div id=\"highlight-12\" onmouseover=\"showTrackers('inline'); setYear(12)\" 
class=\"activeHighlight\">2008</div>
</a>
</div>";
preg_match('/href=\"(.*?)\">.*activeHighlight\">(.*?)<\/div>/si',$cod,$match);
echo $match[1]." ".$match[2]; //LINK1 2008
 
mcdir
Прежде чем давать такие советы, может стоит упоминать о не достатках этого решения по сравнению с ергулярками?
То, что оно проще, и позволяет отключить мозги - не означает что оно лучше
 
mcdir
Прежде чем давать такие советы, может стоит упоминать о не достатках этого решения по сравнению с ергулярками?
То, что оно проще, и позволяет отключить мозги - не означает что оно лучше
Для его задачи в самый раз, удобнее и быстрее обходить DOM структуру чем писать регулярные выражения, хотя изобретать велосипед право каждого

Добавлено через 3 минуты
Данное решение не подходит, поскольку в документе есть ссылки с другой структурой и т.д.
обращение идет к элементу <a и извлекается содержимое href, и тут все равно какая структура ссылки

Вот пример из доков, выводит url ссылок ($element->href)
// Создаем объект DOM на основе кода, полученного по ссылке
$html = file_get_html('http://site/');

// находим все ссылки
foreach($html->find('a') as $element)
echo $element->href .' ('. $element->innertext. ')<br>';
 


ps и вообще парсеры - это искусство, поетому и регулярка и шаблоны будут устаревать сразу с изменением контента,и к этому нужно привыкнуть.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху