zoukankan      html  css  js  c++  java
  • PHP中正则表达式学习及应用(二)

    正则表达式中的“元字符”

    * 匹配前一个内容的0次1次或多次

    例如:

    <?php
        $mode="/go*gle/";  //前一个内容指的是 * 的前一个字符 o ,在$str中出现的次数最少0次。也就是说,可以出现,也可以不出现。 
        $str="google";
        $flag=preg_match($mode, $str, $arr);
        //print_r($arr);
        if($flag){
            echo "匹配成功".$arr[0];    
        }else{
            echo "匹配失败";
        }
    ?> 
    
    输出:
    
    匹配成功google

    . 匹配内容的0次1次或多次,但不包含回车换行

    例如:

    <?php
        $mode="/go.gle/"; //与 * 的用法类似,就是将 
     排除在外
        $str="google";
        $flag=preg_match($mode, $str, $arr);
        //print_r($arr);
        if($flag){
            echo "匹配成功".$arr[0];    
        }else{
            echo "匹配失败";
        }
    ?> 
    
    输出:
    
    匹配成功google

    + 匹配前一个内容的1次或多次

    例如:

    <?php
        $mode="/go+gle/"; //与 * 的用法类似,将0次排除在外。
        $str="gooogle";
        $flag=preg_match($mode, $str, $arr);
        //print_r($arr);
        if($flag){
            echo "匹配成功".$arr[0];    
        }else{
            echo "匹配失败";
        }
    ?> 
    
    输出:
    
    匹配成功gooogle

    匹配前一个内容的0次或1次

    例如:

    <?php
        $mode="/go?gle/"; //与*用法类似,将多次排除在外
        $str="gogle";
        $flag=preg_match($mode, $str, $arr);
        //print_r($arr);
        if($flag){
            echo "匹配成功".$arr[0];    
        }else{
            echo "匹配失败";
        }
    ?> 
    
    输出:
    
    匹配成功gogle

    | 选择匹配类似PHP中的| (因为这个运算符合是弱类型导致前面最为整体匹配)

    例如:

    <?php
        $mode="/google|abc/"; //google和bac 同时在$str中出现 或者 google出现 或者 bac出现。
        $str="googlebac";
        $flag=preg_match($mode, $str, $arr);
        //print_r($arr);
        if($flag){
            echo "匹配成功".$arr[0];    
        }else{
            echo "匹配失败";
        }
    ?> 
     
    
    输出:
    
    匹配成功google

    ^ 匹配字符串首部内容

    例如:

    <?php
        $mode="/^google/"; //字符串google出现在$str的首部
        $str="googleabc";
        $flag=preg_match($mode, $str, $arr);
        //print_r($arr);
        if($flag){
            echo "匹配成功".$arr[0];    
        }else{
            echo "匹配失败";
        }
    ?> 
     
    
    输出:
    
    匹配成功google

    $ 匹配字符串尾部内容

    例如:

    <?php
        $mode="/google$/"; //google出在$str的尾部
        $str="abcgoogle";
        $flag=preg_match($mode, $str, $arr);
        //print_r($arr);
        if($flag){
            echo "匹配成功".$arr[0];    
        }else{
            echo "匹配失败";
        }
    ?> 
    
    输出:
    
    匹配成功google

     匹配单词边界,边界可以是空格或者特殊符合

    例如:

    <?php
        $mode="/google /"; //匹配$str中的空格或者是其他字符
        $str="abc google ";
        $flag=preg_match($mode, $str, $arr);
        //print_r($arr);
        if($flag){
            echo "匹配成功".$arr[0];    
        }else{
            echo "匹配失败";
        }
    ?> 
    
    输出:
    
    匹配成功google

    B 匹配除带单词边界之外的内容

    例如:

    <?php
        $mode="/googleB/";  //匹配除带单词之外的内容
        $str="abc googleabc";
        $flag=preg_match($mode, $str, $arr);
        //print_r($arr);
        if($flag){
            echo "匹配成功".$arr[0];    
        }else{
            echo "匹配失败";
        }
    ?> 
    
    输出:
    
    匹配成功google

    {m} 匹配前一个内容的重复次数为M次

    例如:

    <?php
        $mode="/go{2}gle/"; //匹配$str中的字符 o 出现2次
        $str="google";
        $flag=preg_match($mode, $str, $arr);
        //print_r($arr);
        if($flag){
            echo "匹配成功".$arr[0];    
        }else{
            echo "匹配失败";
        }
    ?> 
    
    输出:
    
    匹配成功google

    {m,} 匹配前一个内容的重复次数大于等于M次

    例如:

    <?php
        $mode="/go{2,}gle/"; //匹配$str中字符 o 的次数大于等于2次
        $str="gooogle";
        $flag=preg_match($mode, $str, $arr);
        //print_r($arr);
        if($flag){
            echo "匹配成功".$arr[0];    
        }else{
            echo "匹配失败";
        }
    ?> 
    
    
    
    输出:
    
    匹配成功gooogle

    {m,n} 匹配前一个内容的重复次数M次到N次

    例如:

    <?php
        $mode="/go{2,4}gle/";  //匹配$str中字符 o 大于2次小于4次
        $str="gooogle";
        $flag=preg_match($mode, $str, $arr);
        //print_r($arr);
        if($flag){
            echo "匹配成功".$arr[0];    
        }else{
            echo "匹配失败";
        }
    ?> 
    
    
    输出:
    
    匹配成功gooogle

    ( ) 合并整体匹配,并放入内存,可使用1 2…依次获取

    例如:

    <?php
        $mode="/goo(abc)gle/"; //匹配$str中的abc
        $str="gooabcgle";
        $flag=preg_match($mode, $str, $arr);
        //print_r($arr);
        if($flag){
            echo "匹配成功".$arr[0];    
        }else{
            echo "匹配失败";
        }
    ?> 
    
    
    输出:
    
    匹配成功gooabcgle

    PHP中正则表达式学习及应用(二)

     本节内容的视频教程:链接: http://pan.baidu.com/s/1bn4UaiN 密码: net6

  • 相关阅读:
    RelativeLayout布局属性
    调整CodeIgniter错误报告级别
    php 报错 Cannot modify header information
    ScrollView中嵌套ListView
    机器学习索引贴(未分类)
    进程与线程
    并行程序
    缓存命中率
    启发式算法(Heuristic Algorithm)
    详解 LSTM
  • 原文地址:https://www.cnblogs.com/yxhblogs/p/4746341.html
Copyright © 2011-2022 走看看