• 技术文章 >php教程 >php手册

    PHP学习之正则表达式

    2016-06-13 12:10:36原创555
    现在我们大家所说的正则表达式基本上是指兼容Perl风格的正则表达式。POSIX风格的正则表达式基本上没人使用了,所以从PHP5.3起,已经不推荐使用了,可能到PHP的下一个版本就会把相关的函数删除。

    关于正则表达式,因为太复杂,所以以后想专看一本正则的书,所以只介绍兼容Perl风格的正则表达式的一些函数。

    1. 定界符
    定界符表示正则表达式的开始和结尾,一般用斜线(/)表示。在PHP中(其它语言暂时没有测试过),它也可以用其它的非数字字母的字符来代替。如/\d+/和#\d+#的表示同一个正则表达式\d+。同时,也可以用小括号对,中括号对,大括号对做为定界符,如[\d+]。

    2. 函数
    匹配函数:preg_match(); 以及preg_match_all();
    替换函数:preg_replace();
    拆分函数:preg_split();
    过滤函数:preg_grep();

    示例代码:

    复制代码 代码如下:


    $a = <<< TEXT
    aaaaaaa 15
    bbbbbbb 16
    TEXT;
    $ret = preg_match(/(\w+) (\d+)/, $a, $match);
    // $ret : 1
    // $match : array(aaaaaaa 15′, aaaaaaa, 15′)

    $ret = preg_match_all(/(\w+) (\d+)/, $a, $match);
    // $ret : 2
    // $match : array(
    // array(aaaaaaa 15′, bbbbbbb 16′),
    // array(bbbbbbb, bbbbbbb),
    // array(15′, 16′),
    // )

    $ret = preg_match_all(/(\w+) (\d+)/, $a, $match, PREG_SET_ORDER);
    // $ret : 2
    // $match : array(
    // array(aaaaaaa 15′, bbbbbbb, 15′),
    // array(bbbbbbb 16′, bbbbbbb, 16′),
    // )

    $b = preg_replace(/(\w+) (\d+)/, \1, \2′, $a);
    // $b : aaaaaaa, 15
    // bbbbbbb, 16′

    $c = preg_split(/\s/, $a);
    // $c : array(aaaaaaa, 15′, bbbbbbb, 16′)

    $files = array(aa.txt, bb.xls, cc.txt);
    $txtFiles = preg_grep(/.*\.txt/, $files);
    // $txtFiles : array(aa.txt, cc.txt)


    参考资料:
    PHP程序设计,2003,第四章 字符串,正则表达式

    php入门到就业线上直播课:查看学习

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

    前端(VUE)零基础到就业课程:点击学习

    清晰的学习路线+老师随时辅导答疑

    自己动手写 PHP MVC 框架:点击学习

    快速了解MVC架构、了解框架底层运行原理

    上一篇:PHP学习之字符串比较和查找 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • ❤️‍🔥共22门课程,总价3725元,会员免费学• ❤️‍🔥接口自动化测试不想写代码?• PHP类中的魔术方法(Magic Method)简明总结,magicmethod• mysql 数据备份类代码• 解析用PHP实现var_export的详细介绍• Xgcalendar 新增Php demo• smarty模板引擎从php中获取数据的方法,smarty模板
    1/1

    PHP中文网