PHP进修笔记--php教科书上关于正则表达式实例代码(择要)

    添加时间:2013-5-25 点击量:

    <?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 = Im Chinese! I can eat;
    ¥arr = preg_split¥preg¥str); //调换
    var_dump¥arr);
    ?>


    真正的心灵世界会告诉你根本看不见的东西,这东西需要你付出思想和灵魂的劳动去获取,然后它会照亮你的生命,永远照亮你的生命。——王安忆《小说家的十三堂课》
    分享到: