日期:2014-05-17  浏览次数:20472 次

求一个匹配html格式的正则!!

<ul id="ul1">
  <li>1</li>
  <li>2</li>
</ul>

请问可以用正则匹配出来这样一段HTML代码吗?我不会写正则,去网上看了点基础教程,匹配出来的结果只有
<ul id="ul1"></ul> 里面的<li>匹配不到(里面的li是不定数量的,可以能是2个,也会是更多~)。求高手帮忙写下正则!
------解决方案--------------------
<?php

$str = 'afdasdfdsa<ul id="ul1">
  <li>1</li>
  <li>2</li>
</ul>asdfasdfasd<ul id="ul2">
  <li>3</li>
  <li>4</li>
</ul>fdsgsdfg';

preg_match_all('/<ul[^>]*>.*<\/ul>/isU', $str, $matches);
print_r($matches[0]);

?>

------解决方案--------------------
<?php  
$str = '<ul id="ul1">
  <li>1</li>
  <li>2</li>
</ul>
<ul id="ul1">
  <li>3</li>
</ul>
<ul id="ul1">
  <li>4</li>
  <li>5</li>
  <li>6</li>
</ul>';
preg_match_all('/<ul.*?>.*?<\/ul>/s', $str, $matches);
var_dump($matches);