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,正则表达式就这样后边在总结!

  • 相关阅读:
    unity 反编译 step2 dll -->reflector
    unity 反编译 step1 disUnity
    rpg
    cmake使用
    linux mysqld的启动过程
    unity内存加载和释放
    Linux下MySql数据库常用操作
    MySQL主从复制与读写分离(非原创,谢绝膜拜)
    linux下IPTABLES配置详解
    linux下查看端口的占用情况
  • 原文地址:https://www.cnblogs.com/bieanju/p/7892979.html
Copyright © 2011-2022 走看看