За последние 24 часа нас посетили 16253 программиста и 1579 роботов. Сейчас ищет 1641 программист ...

Помогите с регулярным выражением

Тема в разделе "Регулярные выражения", создана пользователем serhio11, 27 май 2014.

  1. serhio11

    serhio11 Новичок

    С нами с:
    27 май 2014
    Сообщения:
    3
    Симпатии:
    0
    Есть HTML код:
    Код (Text):
    1. <h2 class="heading"><a href="http://www.site.ru/page1.html">Page1</a> </h2>
    2. <h2 class="heading"><a href="http://www.site.ru/page2.html">Page2</a> </h2>
    3. <h2 class="heading"><a href="http://www.site.ru/page3.html">Page3</a> </h2>
    4. <h2 class="heading"><a href="http://www.site.ru/page4.html">Page4</a> </h2>
    Какое должно быть рег. выражение, чтобы получить только ссылки, которые находятся между тегами h2 с классом heading?
    Если такое:
    Код (Text):
    1. <h2 class="heading"><a href="(.*?).html
    , то получаю:
    Код (Text):
    1. <h2 class="heading"><a href=http://www.site.ru/page4.html
    А нужен только URL.
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    код покажи
     
  3. serhio11

    serhio11 Новичок

    С нами с:
    27 май 2014
    Сообщения:
    3
    Симпатии:
    0
    Какой код?

    Это нужно для парсера (компонент joomla), который получает ссылки с HTML страниц. В настройках есть поле, в которое нужно ввести регулярное выражение. А пробую я в конструкторе http://www.regexr.com/
    Т.е. нужно только рег.выражение.
     
  4. serhio11

    serhio11 Новичок

    С нами с:
    27 май 2014
    Сообщения:
    3
    Симпатии:
    0
    Сам нашел, может кому нужно будет:
    Код (Text):
    1. (?<=<h1 class="heading"><a href=")(.+?)(?=">)
    Т.е. получаем то что находится между
    Код (Text):
    1. <h1 class="heading"><a href="
    и
    Код (Text):
    1. ">
    исключая сами границы поиска. Можно пристроить под любой поиск.
     
  5. gastelo4

    gastelo4 Новичок

    С нами с:
    19 окт 2014
    Сообщения:
    1
    Симпатии:
    0
    Помогите составить регулярное выражение.
    Есть строка "слово1 слово2 слово3"
    Нужно получить "слово1 слово2"
     
  6. Хыиуду

    Хыиуду Активный пользователь

    С нами с:
    3 июн 2014
    Сообщения:
    618
    Симпатии:
    5
    preg_match('~(.*) .+~', $text, $match);
    echo $match[1];
     
  7. rozmakc

    rozmakc Новичок

    С нами с:
    6 июл 2014
    Сообщения:
    17
    Симпатии:
    0
    подскажите как вытащить весь текст между <h2>29 тур</h2> и <h2>30 тур</h2>

    Код (Text):
    1.  
    2. preg_match_all('/(?<=<h2>29 тур<\/h2>)(.+?)(?=<h2>30 тур)/',$str,$matches);
    3.  
    4. echo '<pre>';
    5. print_r($matches);
    6. echo '</pre>';
    выдает Array ( [0] => Array ( ) [1] => Array ( ) )

    подскажите чайнику плиз