За последние 24 часа нас посетили 18975 программистов и 1635 роботов. Сейчас ищут 835 программистов ...

preg_match_all

Тема в разделе "Регулярные выражения", создана пользователем mrtroska, 7 окт 2010.

  1. mrtroska

    mrtroska Активный пользователь

    С нами с:
    7 окт 2010
    Сообщения:
    2
    Симпатии:
    0
    Здравствуйте. Не могу понять как составляется код для вырезки для функции preg_match_all

    Пример:

    Мне нужно найти следующий кусок кода:
    Код (Text):
    1.  
    2. <h3>
    3.                         <a href="http://perm.olx.ru/53-iid-126790622"  title="ГАЗ 53 фургон - Пермь">
    4.                             ГАЗ 53 фургон                        </a>
    и выдрать из него фразу ГАЗ 53 фургон. Точнее найти подобные куски.

    Я не могу понять по каким правилам преобразуется код для переменной string pattern, т.е. как его записать из кода выше в код с нужными символами \, .* и т.д. (как эти символы используются). Я составил следующее:

    preg_match_all("/<h3><a href=\".*\" title=\".*\">(.*)<\/a>/isU", $content, $matches, PREG_PATTERN_ORDER);

    Но парсер нужную фразу не выдирает.
     
  2. kombain

    kombain Активный пользователь

    С нами с:
    28 авг 2010
    Сообщения:
    50
    Симпатии:
    0
    Код (Text):
    1. $reg='#<h3>\s{0,}<a\s{1,}href\s{0,}=\s{0,}".{0,}?"\s{0,}>(.*?)</a>#ius';
    Надо учитывать, что между тегами могут быть пробельные символы (в регулярном выражении обозначаются как \s)