Помогите написать регулярку

Тема в разделе "Регулярные выражения", создана пользователем Бобр Добр, 12 фев 2011.

Статус темы:
Закрыта.
Модераторы: xpert13
  1. Бобр Добр

    Бобр Добр

    Регистр.:
    17 янв 2010
    Сообщения:
    242
    Симпатии:
    37
    Привет всем! Нужно написать регуляроное вырожение которое вытянет кусок кода из
    HTML:
    
    <tr class="two">
            <td class="feature1">Username</td>
            <td class="feature2">TEXT</td>
    </tr>
    сам попробовал писать, но не работает(
    вот мой код:
    Код:
    preg_match( '/<tr class="two">\r\n<td class="feature1">Username<\/td>\r\n<td class="feature2">(.*)<\/td>/', $text, $title );
     
  2. serrgo

    serrgo

    Регистр.:
    13 авг 2006
    Сообщения:
    158
    Симпатии:
    77
    Как вставить в preg_match я хз
    Или вот так вот чтобы результат в группе был
    А не) Для Пхп вот так будет:
     
  3. artcosmic

    artcosmic

    Регистр.:
    16 сен 2008
    Сообщения:
    198
    Симпатии:
    161
    пробелы забыли
    и модификатор /s поставьте
     
  4. unsiker

    unsiker

    Регистр.:
    6 июн 2008
    Сообщения:
    465
    Симпатии:
    172
    PHP:
    preg_math("#<td class=\"feature2\">(.+)</td>#"$TEXT_IN$TEXT_OUT);

     
  5. Бобр Добр

    Бобр Добр

    Регистр.:
    17 янв 2010
    Сообщения:
    242
    Симпатии:
    37
    не работает
    Код:
    print_r($title) //Array()
    @unsiker выводит но не ту строку, нужно именно что бы было <tr class="two">, потому что выше вырожение парсит данные из поля<tr class="one"> оно идёт выше по коду...
     
  6. VandJ

    VandJ

    Регистр.:
    8 апр 2008
    Сообщения:
    319
    Симпатии:
    124
    PHP:
    preg_match('/<tr class="two">.*?<td class="feature2">(.*)<\/td>/s',$text,$title); 
    или
    PHP:
    preg_match('/<tr class="two">\r\s+<td class="feature1">Username<\/td>\r\s+<td class="feature2">(.*)<\/td>/',$text,$title);
     
  7. Maza

    Maza

    Регистр.:
    3 июл 2007
    Сообщения:
    255
    Симпатии:
    118
    Чтоб не создавать лишнюю тему, напишу здесь. Есть задача проверки пароля.
    Нужно чтоб пароль содержал любые символы, но при этом обязательно должны быть три группы символов Большая буква, маленькая буква, цифра и любой спец символ, составил вот такую регулярку, но не работает. Длина от 6-50 символов
    PHP:
    "#*[a-z]+[A-Z]+[0-9]+[/Q*/-!";%:?*()_/E]+{6,50}#";
     
  8. VandJ

    VandJ

    Регистр.:
    8 апр 2008
    Сообщения:
    319
    Симпатии:
    124
    Цифра и символ в одной группе:
    PHP:
    "#((?=.*[\d~%.:_\-*/();!\"№$])(?=.*[a-z])(?=.*[A-Z]).{6,50})#"
     
    Maza нравится это.
  9. Бобр Добр

    Бобр Добр

    Регистр.:
    17 янв 2010
    Сообщения:
    242
    Симпатии:
    37
    блин всё равно не работает получаем пустой массив

    блин кажись это моя вина...
    я дал не весь код, просто в коде
    <tr class="two"> и <td class="feature2"> повторяются...
    вод вся таблица:
    HTML:
    <table width="250" border="0" cellspacing="0" cellpadding="0">
    
          <tr class="two">
            <td class="feature1">Username</td>
            <td class="feature2">a7265806</td>
    
          </tr>
    
          <tr class="two">
    
            <td class="feature1">Disk Usage</td>
            <td class="feature2">aaaa</td>
          </tr>
    
    
          <tr class="two">
            <td class="feature1">Home Root</td>
            <td class="feature2">/home/aaaaa</td>
          </tr>
        </table>
     
  10. VandJ

    VandJ

    Регистр.:
    8 апр 2008
    Сообщения:
    319
    Симпатии:
    124
    Что Вам нужно из этого вытянуть???
    PHP:
    $text '<table width="250" border="0" cellspacing="0" cellpadding="0">
          <tr class="two">
            <td class="feature1">Username</td>
            <td class="feature2">a7265806</td>
          </tr>
          <tr class="two">
            <td class="feature1">Disk Usage</td>
            <td class="feature2">aaaa</td>
          </tr>
          <tr class="two">
            <td class="feature1">Home Root</td>
            <td class="feature2">/home/aaaaa</td>
          </tr>
        </table>'
    ;
    preg_match('/<tr class="two">\r\s+<td class="feature1">Username<\/td>\r\s+<td class="feature2">(.*)<\/td>/',$text,$title); 
    print_r ($title); //Array ( [0] => Username a7265806 [1] => a7265806 )
     
    Бобр Добр нравится это.
Статус темы:
Закрыта.