zoukankan      html  css  js  c++  java
  • php 正则表达式的使用

    要点:php正则表达式要用双引号,且要用“/ /”斜线做开始结束。

    1、preg_match 、 preg_match_all

      两者的区别:第一次匹配成功后就会停止匹配,如果要实现全部结果的匹配,即搜索到subject结尾处,则需使用 preg_match_all()

      int preg_match(pattern, subject)  

      int preg_match_all(pattern, subject, matches)  

     两者函数都是 返回值是0或1。找不到返回0。

    //遍历“/log”文件夹,匹配文件名储存到数组
    
      $logFileArr = scandir("/log"); 
      $fileArr = "";
      for($i=0; $i<count($logFileArr); $i++)
      {
          if(preg_match("/^JD_cloud.log[.]*[0-9]*$/",$logFileArr[$i],$m))
          {
              // print_r($m);
              $fileArr[] = "/log/".$m[0];
          }
      }

     NOTICE:

    $str = "1,2,9";
    if(preg_match("/^(([0-8]{1}),)*([0-8]{1})$/",$str,$matches))
    {
        print_r($matches);  
       echo "success";
    }
    else
    {
        echo "error";
    }

    如果正则表达式

    /^(([0-8]{1}),)*([0-8]{1})$/

    里没有加入^ $开关和结尾的正则符时,会出现匹配成功的情况。

    1. ^:表示匹配字符串的开始,也即该字符串是独立的开始而不是包含在某个字符串之内
    2. $:表示匹配字符串的结束,也即该字符串是独立的结束

    2、根据正则表达式进行替换

      mixed preg_replace(pattern, replacement, subject)

      进行字符串或数组的正则表达式的替换。可替代preg_grep

    <?  
     // 将“:”替换为“-”
      $item = "F0:FF:20:DE:80"
      $item = preg_replace("/:/","-",$item);
    ?>

    3、在数组中查找符合的正则表达式的内容

      array  preg_grep ( string $pattern , array $input [, int $flags = 0 ] )

    4、 一些常用的正则表达式

          匹配Ip,  子网掩码, 网关

         

      if(preg_match($preg_str, $ip)&& preg_match($preg_str,$gateway) && preg_match($preg_str,$submask) )  {
      
       if( (ip2long($ip) & ip2long($submask)) != (ip2long($gateway) & ip2long($submask)))
       {
          // $dataArr['NetmateGateway'] =  $dataArr['NetmateIPAddr'];
          $gateway = $ip;
       }
    
        $cUsrConf->set_ini_file("network","ipaddr",$ip);
        $cUsrConf->set_ini_file("network","gateway",$gateway);
        $cUsrConf->set_ini_file("network","mask",$submask);
    
      
      }else{
      
        $alertStr ="ip、子网掩码及网关设置不正确";
      
      }

      

  • 相关阅读:
    第一部分:开发前的准备-第二章 基础入门
    多线程笔记
    .net平台下垃圾回收机制
    xml基本操作和保存配置文件应用实例
    .net平台下C#socket通信(中)
    .net平台下C#socket通信(上)
    泛型
    面向过程和面向对象及面向对象的三大特征
    值类型和引用类型及参数传递
    js中typeof与instanceof区别
  • 原文地址:https://www.cnblogs.com/hzijone/p/4692066.html
Copyright © 2011-2022 走看看