BoyLee 2016-05-10 15:53:05 2089次浏览 1条回复 0 0 0
$string = '<ul class="A"><li>A</li><li>B</li><li>C</li><li>D</li></ul>
<ul class="B"><li>A</li><li>B</li><li>C</li><li>D</li></ul>
<ul class="C"><li>A</li><li>B</li><li>C</li><li>D</li></ul>';
	    preg_match_all('|<ul class="A">(<li>.*?</li>)*</ul|', $string, $tmpArr);
	    var_dump($tmpArr);
	    exit;

说明 有3个ul 想通过clss来一次匹配对应 ul下的li, 但是结果只能匹配到最后一个li

array(2) {
  [0]=>
  array(1) {
    [0]=>
    string(58) "<ul class="A"><li>A</li><li>B</li><li>C</li><li>D</li></ul"
  }
  [1]=>
  array(1) {
    [0]=>
    string(10) "<li>D</li>"
  }
}

目前的做法是把 ul提取出来然后再次匹配li做2次

有什么好的想法吗?

您需要登录后才可以回复。登录 | 立即注册