课程咨询 :025-86971863

南京PHP培训 > 雇主企业 > 企业笔试题 > PHP中的正则表达式及PCRE函数
  • PHP中的正则表达式及PCRE函数

    发布:南京PHP培训      来源:企业笔试题    

  • PCRE

    PHP有两种使用不同的方式来使用正则表达式:PCRE(Perl兼容表示法,preg_*)函数 和 POSIX(POSIX 扩展表示法,ereg_*) 函数。幸运的是,POSIX 家族函数从 PHP 5.3.0 开始就被弃用了。

    正则表达式

    界定符

    经常使用的分隔符是正斜线(/)、hash符号(#) 以及取反符号(~)。下面的例子都是使用合法分隔符的模式

    /foo bar/

    #^[^0-9]$#

    +php+

    %[a-zA-Z0-9_-]%

    {this is a pattern}

    可以在结束分隔符后面增加模式修饰符

    元字符

    一些字符被赋予 特殊的涵义,使其不再单纯的代表自己,模式中的这种有特殊涵义的编码字符 称为 元字符。

    元字符描述

    一般用于转义字符

    ^断言目标的开始位置(或在多行模式下是行首)

    $断言目标的结束位置(或在多行模式下是行尾)

    .匹配除换行符外的任何字符(默认)

    [开始字符类定义

    ]结束字符类定义

    |开始一个可选分支

    (子组的开始标记

    )子组的结束标记

    ?作为量词,表示 0 次或 1 次匹配。位于量词后面用于改变量词的贪婪特性。 (查阅量词)

    *量词,0 次或多次匹配

    +量词,1 次或多次匹配

    {自定义量词开始标记

    }自定义量词结束标记

    模式中方括号内的部分称为“字符类”。 在一个字符类中仅有以下可用元字符

    元字符描述

    转义字符

    ^仅在作为第一个字符(方括号内)时,表明字符类取反

    -标记字符范围

    字符类

    方括号中的内容就是字符类

    有一些预定义字符类

    字符类描述

    d任意十进制数字

    D任意非十进制数字

    h任意水平空白字符(since PHP 5.2.4)

    H任意非水平空白字符(since PHP 5.2.4)

    s任意空白字符

    S任意非空白字符

    任意垂直空白字符(since PHP 5.2.4)

    V任意非垂直空白字符(since PHP 5.2.4)

    w任意单词字符

    W任意非单词字符

    原子

    可见原子

    如abc

    不可见原子



    量词

    量词

    *等价于 {0,}

    +等价于 {1,}

    ?等价于 {0,1}

    断言

    简单的断言代码有、B、 A、 Z、z、 ^、$

    前瞻断言

    从当前位置向前测试

    (?=) (?!)

    w+(?=;)匹配一个单词紧跟着一个分号但是匹配结果不会包含分号

    后瞻断言

    从当前位置向后测试

    (?<=) (?

    (?用于查找任何前面不是 ”foo” 的 ”bar”

    模式修饰符

    模式修饰符

    U这个修饰符逆转了量词的”贪婪”模式,使量词默认为非贪婪的

    i大小写不敏感匹配

    x忽略空白

    s点号元字符匹配所有字符,包含换行符。如果没有这个修饰符,点号不匹配换行符



    PCRE 函数

    preg_filter — 执行一个正则表达式搜索和替换

    preg_grep — 返回匹配模式的数组条目

    preg_last_error — 返回最后一个PCRE正则执行产生的错误代码

    preg_match_all — 执行一个全局正则表达式匹配

    preg_match — 执行一个正则表达式匹配

    preg_quote — 转义正则表达式字符

    preg_replace_callback_array — Perform a regular expression search and replace using callbacks

    preg_replace_callback — 执行一个正则表达式搜索并且使用一个回调进行替换

    preg_replace — 执行一个正则表达式的搜索和替换

    preg_split — 通过一个正则表达式分隔字符串

    南京php培训:nj.php.tedu.cn

    推荐文章

上一篇:PHP的命令行脚本开发

下一篇:PHP中二维数组排序问题

最新开班日期  |  更多

PHP高级开发工程师就业班

PHP高级开发工程师就业班

开班日期:04-28

PHP高级开发工程师精品班

PHP高级开发工程师精品班

开班日期:04-28

PHP高级开发工程师周末班

PHP高级开发工程师周末班

开班日期:04-28

PHP高级开发工程师定制班

PHP高级开发工程师定制班

开班日期:04-28

  • 地址:南京市秦淮区太平南路333号金陵御景园8楼达内
  • 课程培训电话:025-86971863     全国服务监督电话:400-111-8989
  • 服务邮箱 tousu@tedu.cn
  • 2002-2018 达内时代科技集团有限公司 版权所有 京ICP证8000853号-56