PHP学习笔记--php教科书上关于正则表达式实例代码(摘要)

<?php 

        /*posix扩展正则表达式函数*/

        /*---------------------------------------------------*/

        $ereg = '^[$][[:alpha:]_][[:alnum:]]*';

        ereg($ereg,'$_name',$register); //匹配并且存放数组  //eregi()不分大小写

        var_dump($register); //显示数组结构

        

        /*---------------------------------------------------*/

        $ereg = 'tm';

        $str = 'hello,tm,Tm,tM';

        $rep_str=eregi_replace($ereg,'TM',$str); //匹配成功的都用TM替换 ereg_replace() 分大小写

        echo $rep_str;

        

        /*---------------------------------------------------*/

        $ereg = 'is';

        $str = 'This is a register book.';

        $arr_str = spliti($ereg,$str); //分割字符串。按正则匹配 split() 分大小写

        var_dump($arr_str);

        

        

        /*pcre兼容正则表达式函数  --无论从效率或者语法上pcre都略优于posix*/

        /*---------------------------------------------------*/

        $preg = '/\d{3,4}-?\d{7,8}/';

        $arr = array('043212345678','0431-7654321','12345678'); //包含元素数组

        $preg_arr = preg_grep($preg,$arr);

        var_dump($preg_arr);

        

        /*---------------------------------------------------*/

        $str = 'This is an example!';

        $preg = '/\b\w{2}\b/';

        $num1 = preg_match($preg,$str,$str1); //匹配并返回成功个数,把匹配成功的放入数组 成功后,就停止

        echo $num1."<br />";

        var_dump($str1);

        echo "<br />";

        //匹配并返回成功个数,把匹配成功的放入数组 成功后,不停止,直到匹配所有字符结束

        $num2 = preg_match_all($preg,$str,$str2); 

        echo $num2."<br />";

        var_dump($str2);

        

        /*---------------------------------------------------*/

        $str = '!、$、^、*、+、.、[、]、\\、/、b、<、>';

        $str2='b';

        //自动将正则特殊字符进行转义,如果有参数,字符中含参数字符也会被转义

        $match_one = preg_quote($str,$str2); 

        echo $match_one;

        

        /*---------------------------------------------------*/

        $string = '[b]粗体字[/b]';

        //匹配并替换 用了反向引用

        $b_rst = preg_replace('/\[b\](.*)\[\/b\]/i','<b>$1</b>',$string);

        echo $b_rst;

        

        /*---------------------------------------------------*/

        function c_back($str)

        {

            //反向引用

            $str = "<font color=$str[1]>$str[2]</font>";

            return $str;

        }

        $string = '[color=blue]字体蓝色[/color]';

        //preg_replace_callback函数中要替换的字符,换成了回调函数而已和 preg_replace差不多

        echo preg_replace_callback('/\[color=(.*)\](.*)\[\/color\]/U',"c_back",$string);

        

        /*---------------------------------------------------*/

        //此函数书上没有,我自己写的示例给大家!

        $preg = "/\s+/"; //这里也可以换成 "/\s{1,}/";

        $str = "I'm Chinese! I can eat";

        $arr = preg_split($preg,$str); //查找并拆分。--这里有笔误,以前看过的朋友对不住了,现已更正

        var_dump($arr);

    ?>

 

你可能感兴趣的:(正则表达式)