当前位置:Gxlcms > PHP教程 > 求一段正则表达式,该怎么处理

求一段正则表达式,该怎么处理

时间:2021-07-01 10:21:17 帮助过:19人阅读

求一段正则表达式




  • [淘宝商城]


    活动标题




  • ……


  • ……




      我希望通过正则 将上面的内容 变成一串数组

      array(
      [0] =>array(
      "shopname" => "淘宝商城",
      "activename"=> "活动标题",
      "actimage" => "http://image.com/pic.gif",
      "acturl" => "http:/www.tmall.com/" //这个是活动标题的链接
      ),
      [1] =>array(……)
      ……
      );

      就像上面一样输出数组



      ------解决方案--------------------
      只用正则达到你的要求似乎不太可能。要处理一下。我贴下匹配结果。处理自己补充:
      PHP code
      
         $str=<<
        
    • [淘宝商城]

      活动标题

    • ……
    • ……
        html; preg_match_all('#]*>(.*)#isU',$str,$arr); foreach($arr[1] as $v){ preg_match_all('#]*>(.*)#isU',$v,$ar[]); } print_r($ar);
        ------解决方案--------------------
        PHP code
        
        $str = <<
          
      • [淘宝商城1]

        活动标题

      • [淘宝商城2]

        活动标题

      HTML; /** *"shopname" => "淘宝商城", "activename"=> "活动标题", "actimage" => "http://image.com/pic.gif", "acturl" => "http:/www.tmall.com/" //这个是活动标题的链接 */ $pattern = '~img.*(?<=")(.*)".*\[(.*)\].*(?<=f=")(.*)".*(?<=e=")(.*)"~Uis'; preg_match_all($pattern, $str, $m); $res = array(); $num = 4;//匹配项数量 for ($i = 0; $i < count($m[0]); $i++){ for ($j = 1; $j <= $num; $j++){ $res[$i][] = $m[$j][$i]; } } echo '
      ';
      print_r($res);
      echo '
      '; /** 剩下的你懂的 Array ( [0] => Array ( [0] => http://image.com/pic.gif1 [1] => 淘宝商城1 [2] => http://www.tmall.com/1 [3] => 活动标题1 ) [1] => Array ( [0] => http://image.com/pic.gif2 [1] => 淘宝商城2 [2] => http://www.tmall.com/2 [3] => 活动标题2 ) ) */

人气教程排行