1Frosty
@1Frosty
Познаю новое

Как правильно написать регулярное выражение?

Доброго времени суток, друзья. У меня есть html код:
<div class="winning_numbers cleared">
	<ul>
							<li class="girl1 number4  ">
				<p class="number">4</p>
			</li>
					<li class="girl2 number7  ">
				<p class="number">7</p>
			</li>
					<li class="girl3 number5  ">
				<p class="number">5</p>
			</li>
					<li class="girl4 number8  ">
				<p class="number">8</p>
			</li>
					<li class="girl5 number26  ">
				<p class="number">26</p>
			</li>
							<li class="girl6 number3">
				<div class="hider">
					<p class="number">3</p>
				</div>
			</li>
					</ul>
</div>

Мне необходимо из каждого p class="number" вытащить число между тегами, отдельно. Как только не пробывал использовать регулярку, не получается правильно это сделать. Подскажите пожалуйста, как правильно вытащить данные между p class="number"

Заранее большое спасибо!
  • Вопрос задан
  • 103 просмотра
Решения вопроса 1
doublench21
@doublench21
<?php
$re = '/<p class="number">(.+)<\/p>/';
$str = '<div class="winning_numbers cleared">
  <ul>
              <li class="girl1 number4  ">
        <p class="number">4</p>
      </li>
          <li class="girl2 number7  ">
        <p class="number">7</p>
      </li>
          <li class="girl3 number5  ">
        <p class="number">5</p>
      </li>
          <li class="girl4 number8  ">
        <p class="number">8</p>
      </li>
          <li class="girl5 number26  ">
        <p class="number">26</p>
      </li>
              <li class="girl6 number3">
        <div class="hider">
          <p class="number">3</p>
        </div>
      </li>
          </ul>
</div>';

preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0);

// Print the entire match result
var_dump($matches);
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
chupacabramiamor
@chupacabramiamor
Инженегр-программист
$mcount = preg_match_all('~\<p class=\"number\"\>([0-9]+)\<\/p~is', $str, $matches);
if (count($mcount) > 0)) {
  print_r($matches[1]);
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы