正则表达式界定符经常使用的分隔符是正斜线(/)、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 callbackspreg_replace_callback — 执行一个正则表达式搜索并且使用一个回调进行替换preg_replace — 执行一个正则表达式的搜索和替换preg_split — 通过一个正则表达式分隔字符串
http://www.bkjia.com/phpjc/1050841.htmlwww.bkjia.comtruehttp://www.bkjia.com/phpjc/1050841.htmltecharticlephp中的正则表达式及pcre函数 pcre php有两种使用不同的方式来使用正则表达式:pcre(perl兼容表示法,preg_*)函数 和 posix(posix 扩展表示法,...