美文网首页
正则表达式详解

正则表达式详解

作者: 极客小寨 | 来源:发表于2017-12-19 10:13 被阅读11次
    preg.jpg

    正则表达式是一种描述字符串结果的语法规则,是一个特定的格式化模式,可以匹配、替换、截取匹配的字符串。常用的语言基本上都有正则表达式,如JavaScript、java等。其实,只有了解一种语言的正则使用,其他语言的正则使用起来,就相对简单些。文本主要讲解常用的正则表达式函数和正则表达式基本语法。

    一、常用的正则表但是函数

    preg_match($pattern,$subject,[array&$matches])

    preg_match_all($pattern,$subject,array&$matches)

    preg_match($pattern,$subject,[array &$matches]) --进行正则表达式匹配

    preg_match_all($pattern,$subject,array &$matches) --进行正则表达式匹

    实例代码:

    $pattern = '/[0-9]/';
    $subject = 'weuyr3ui76as83s0ck9';
    $m1 = $m2 = array();
    
    $t1 = preg_match($pattern, $subject,$m1);
    $t2 = preg_match_all($pattern, $subject,$m2);
    
    print_r($m1);
    echo "<br><pre>";
    
    print_r($m2);
    echo $t1.'||'.$t2;
    

    结果:

    Array ( [0] => 3 ) 
        Array
        (
            [0] => Array
                (
                    [0] => 3
                    [1] => 7
                    [2] => 6
                    [3] => 8
                    [4] => 3
                    [5] => 0
                    [6] => 9
                )   
        )
        1||7;
    

    preg_replace($pattern, $replacement, $subject)

    preg_filter($pattern, $replacement, $subject)

    preg_replace($pattern, $replacement, $subject) --执行正则表达式的搜索和替换

    preg_filter($pattern, $replacement, $subject) --执行正则表达式的搜索和替换

    实例代码:

    // $pattern = '/[0-9]/';
        // $subject = 'weuyr3ui76as83s0ck9';
        // $replacement = "小学生";
    
        // $str1 = preg_replace($pattern, $replacement, $subject);
        // $str2 = preg_filter($pattern, $replacement, $subject);
        
        // echo "<pre>";
        // print_r($str1);
        // echo "<br>";
        // print_r($str2);
    
        /*        ********************输出的结果***********************        
            weuyr小学生ui小学生小学生as小学生小学生s小学生ck小学生
            weuyr小学生ui小学生小学生as小学生小学生s小学生ck小学生 
        */
    
        // $pattern = array('/[0123]/','/[456]/','/[789]/');
        // $subject = 'weuyr3ui76as83s0ck9';
        // $replacement = array("小","学","生");
    
        // $str1 = preg_replace($pattern, $replacement, $subject);
        // $str2 = preg_filter($pattern, $replacement, $subject);
    
        // echo "<pre>";
        // print_r($str1);
        // echo "<br>";
        // print_r($str2);
    
        /*        ********输出的结果********       
            weuyr小ui生学as生小s小ck生 
            weuyr小ui生学as生小s小ck生 
        */
    
        //*********************区别*********************
    
        $pattern = array('/[0123]/','/[456]/','/[789]/');
        $subject = array('weuy','r3ui','76as83','s0ck9');
        $replacement = array("小","学","生");
    
        $str1 = preg_replace($pattern, $replacement, $subject);
        $str2 = preg_filter($pattern, $replacement, $subject);
        echo "<pre>";
        print_r($str1);
        echo "<br>";
        print_r($str2);
    
    
        /*
    

    结果:

    Array
        (
            [0] => weuy
            [1] => r小ui
            [2] => 生学as生小
            [3] => s小ck生
        )Array
        (
            [1] => r小ui
            [2] => 生学as生小
            [3] => s小ck生
        )
    

    注意:

    preg_replave() --不管字符串有没有发生变化全都会保留。

    preg_filter() --只会保留发生过替换的字符串。

    preg_grep()

    preg_grep() --返回匹配模式的数组条目(只做匹配,不做替换)

    实例代码:

    $pattern = '/[0-9]/';
    $subject = array('weuy','r3ui','76as83','s0ck9');
    
    $arr = preg_grep($pattern, $subject);
    echo "<pre>";
    
    print_r($arr);
    

    结果:

    Array
        (
            [1] => r3ui
            [2] => 76as83
            [3] => s0ck9
        )
    

    preg_split($psttern,$subject)

    preg_split($psttern,$subject) --通过一个正则表达式分隔字符串

    实例代码:

    $pattern = '/[0-9]/';
    $subject = '小2学3生,7约吗?';
    
    $arr = preg_split($pattern, $subject);
    
    echo "<pre>";
    print_r($arr);
    

    结果:

    Array
            (
                [0] => 小
                [1] => 学
                [2] => 生,
                [3] => 约吗?
            )
    

    preg_quote($str)

    preg_quote($str) --正则运算符转义

    实例代码:

    $str = 'qwer{asdf}[1234]';
    
    $str= preg_quote($str);
    
    echo $str;
    

    结果:

    qwer\{asdf\}\[1234\]
    

    二、正则表达式基本语法

    相关文章

      网友评论

          本文标题:正则表达式详解

          本文链接:https://www.haomeiwen.com/subject/cexrwxtx.html