现在的位置: 主页 > 联系方式 > 文章正文

PHP中的正则表达式及PCRE函数

作者:成都渝祥金属丝网制品有限公司 来源:www.cdyuxiang.com 未知发布时间:2017-09-09 10:25:36
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 — 通过一个正则表达式分隔字符串

企业建站2800元起,携手武汉肥猫科技,做一个有见地的颜值派!更多优惠请戳:鄂州网站制作 http://ezhou.666rj.com

上一篇:How to create RESTful WCF Service 下一篇:最后一页