php 正则表达式 取出 li标签里的内容

2024-11-02 02:27:54
推荐回答(4个)
回答1:

可以写一个函数,获取到数组。
正则表达式是:   ]*>\s*([^<]*)\s*\s*<[^>]*class="date">([^<]*)<
请对上面的 PHP中特殊符号进行转义。
$1  是内容,$2是日期
函数写法参考

$str = '
  • 内容111
  • 内容111
  • 内容111
  • 内容111

  1. 内容2
  2. 内容2
  3. 内容2
  4. 内容12

';
$search = '/
    (.*?)<\/ul>/is';
    preg_match_all($search,$str,$r,PREG_SET_ORDER );
    print_r($r);
    $search = '/
      (.*?)<\/ol>/is';
      preg_match_all($search,$str,$r,PREG_SET_ORDER );
      print_r($r);
      ?>

回答2:

可以写一个函数,获取到数组。
正则表达式是: ]*>\s*([^<]*)\s*\s*<[^>]*class="date">([^<]*)<
请对上面的 PHP中特殊符号进行转义。
$1 是内容,$2是日期
函数写法参考
http://www.jb51.net/article/14049.htm【将字串中所有链接提取出来,保存到数组中】

回答3:

$str = <<html='



  • 内容1

    2015-07-07



  • 内容2

    2015-07-08

  • EOF;
    preg_match_all("/
  • .*<\/li>/sU",$str,$li);
    $arr = array();
    foreach( $li[0] as $val ){
    preg_match("/target=\"_blank\" >(.*)<\/a>/sU", $val,$content);
    preg_match("/span class=\"date\">(.*)<\/span>/U", $val,$time);
    $arr[] = array("content"=>$content[1],"time"=>$time[1]);
    }

  • 回答4:

    $str='uhlksd

  • 内容
  • dsjkwkfsd';
    preg_match_all('/
  • (.*?)<\/li>/is',$str,$match);print_r($match);