zoukankan      html  css  js  c++  java
  • 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);
        ?>
  • 相关阅读:
    【Luogu1501】Tree(Link-Cut Tree)
    【BZOJ3530】数数(AC自动机,动态规划)
    【BZOJ1212】L语言(AC自动机)
    【BZOJ2037】Sue的小球(动态规划)
    【BZOJ1899】午餐(动态规划)
    【BZOJ1009】GT考试(KMP算法,矩阵快速幂,动态规划)
    【BZOJ1040】骑士(动态规划)
    【BZOJ1969】航线规划(Link-Cut Tree)
    【BZOJ4653】【NOI2016】区间(线段树)
    我也不知道什么是"莫比乌斯反演"和"杜教筛"
  • 原文地址:https://www.cnblogs.com/clouds008/p/3095981.html
Copyright © 2011-2022 走看看