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

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

Бобр Добр

Профессор
Регистрация
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 );
 
Как вставить в preg_match я хз
(?s)(?<=<tr class="two">.*<td class="feature1">Username</td>.*<td class="feature2">).*?(?=</td>)
Или вот так вот чтобы результат в группе был
(?s)(?<=<tr class="two">.*<td class="feature1">Username</td>.*<td class="feature2">)(.*?)(?=</td>)
А не) Для Пхп вот так будет:
<tr class="two">\r\n.*<td class="feature1">Username</td>\r\n.*<td class="feature2">(.*?)</td>\r\n</tr>
 
пробелы забыли
и модификатор /s поставьте
preg_match( '/<tr class="two">\n\s+<td class="feature1">Username<\/td>\n\s+<td class="feature2">(.*)<\/td>/s', $text, $title );
 
PHP:
preg_math("#<td class=\"feature2\">(.+)</td>#", $TEXT_IN, $TEXT_OUT);
 
пробелы забыли
и модификатор /s поставьте
не работает
Код:
print_r($title) //Array()

preg_math("#<td class=\"feature2\">(.+)</td>#", $TEXT_IN, $TEXT_OUT);
@Для просмотра ссылки Войди или Зарегистрируйся выводит но не ту строку, нужно именно что бы было <tr class="two">, потому что выше вырожение парсит данные из поля<tr class="one"> оно идёт выше по коду...
 
Привет всем! Нужно написать регуляроное вырожение которое вытянет кусок кода из
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 );
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);
 
Чтоб не создавать лишнюю тему, напишу здесь. Есть задача проверки пароля.
Нужно чтоб пароль содержал любые символы, но при этом обязательно должны быть три группы символов Большая буква, маленькая буква, цифра и любой спец символ, составил вот такую регулярку, но не работает. Длина от 6-50 символов
PHP:
"#*[a-z]+[A-Z]+[0-9]+[/Q*/-!"№;%:?*()_/E]+{6,50}#";
 
Чтоб не создавать лишнюю тему, напишу здесь. Есть задача проверки пароля.
Нужно чтоб пароль содержал любые символы, но при этом обязательно должны быть три группы символов Большая буква, маленькая буква, цифра и любой спец символ, составил вот такую регулярку, но не работает. Длина от 6-50 символов
PHP:
"#*[a-z]+[A-Z]+[0-9]+[/Q*/-!"№;%:?*()_/E]+{6,50}#";
Цифра и символ в одной группе:
PHP:
"#((?=.*[\d~%.:_\-*/();!\"№$])(?=.*[a-z])(?=.*[A-Z]).{6,50})#"
 
  • Нравится
Реакции: Maza
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);

блин всё равно не работает получаем пустой массив

блин кажись это моя вина...
я дал не весь код, просто в коде
<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>
 
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>
Что Вам нужно из этого вытянуть???
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 )
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху