zoukankan      html  css  js  c++  java
  • 正则表达式(一)

    平时开发的正则表达式基本都是整理现成的,也没太在意如何编写正则表达式,最近要采集一些数据就大致看了下正则表达式,当时觉得写起来应该没什么问题,WTF当去写的时候脑子一片空白???所以记录下正则的使用过程!!

    先来采采自己网站如下图准备采集导航栏的数据,接下来上代码: 

     

    <?php
    
    	header("content-type:text/html;charset=utf-8");
    	$html = file_get_contents("http://www.bieanju.com/");
         //采集div id="nav"开始的第一个div的所有内容 preg_match_all('/<div id="nav">(.*?)</div>/i',$html,$mat); $htmls = $mat[1][0]; print_r($htmls);
         //打印如下图发现ul结束的时候多余了个script ?>

      

            //剔除 script标签
    	$htmls = preg_replace("/<script(.*)?</script>/", "", $htmls);
    	print_r($htmls);
        //OK结果如下图没有问题进行下一步

      

     //剔除a标签的href属性 此处注重说明下的使用:匹配一个单词边界,也就是指单词和空格间的位置。例如,“er”可以匹配“never”中的“er”,但不能匹配“verb”中的“er”。
     $htmls = preg_replace("/href="([^"]*)"/i", "", $htmls);
     print_r($htmls);  
    

    此时进行最后一步处理目前的数据接口拿到最终的导航栏数据array

    //把当前的dom结构用simplexml_load_string装车对象然后在转数组最终处理成标准一维数组
       $string = json_decode(json_encode((array)simplexml_load_string($htmls)),true);
    //使用array_column取出最终数据重新组装数组
       $string = array_column($string['li'], 'a');    print_r($string);

     

    OK,正则表达式就这样后边在总结!

  • 相关阅读:
    Service Name Port Number Transport Protocol tcp udp 端口号16bit
    linux linux 互传文件 win 不通过 ftp sftp 往linux 传文件(文件夹)
    soft deletion Google SRE 保障数据完整性的手段
    Taylor series
    Taylor's theorem
    Moving average
    REQUEST
    Unix file types
    mysqld.sock
    Tunneling protocol
  • 原文地址:https://www.cnblogs.com/bieanju/p/7892979.html
Copyright © 2011-2022 走看看