正则表达式笔记

来源:互联网 发布:js数组去重的方法sp 编辑:程序博客网 时间:2024/05/21 10:43

一.相关函数介绍

1.preg_grep($model,$array,$flags)函数返回与模式匹配的数组单元
$model:表示匹配模式,用两个斜杠包含起来
$array:表示即将要匹配的数组

$flags:(可选)如果设置为PREG_GREP_INVERT, 这个函数返回$array中与$model不匹配的元素组成的数组.

2.preg_match($model,$string,$matches,$flags,$offset)函数在字符串中搜索模式,如果有匹配,返回true,如果没有匹配,返回false,在第一次匹配成功以后将会停止搜索
$model:表示匹配模式,用两个斜杠包含起来
$string:表示即将要匹配的字符串
$matches:(可选)搜索结果。 $matches[0]将包含完整模式匹配到的文本,$matches[1]表示第一个匹配到的文本,以此类推。
$flags:(可选)如果设置为PREG_OFFSET_CAPTURE,这会将$matches中的每个元素成为一个由第0个元素是匹配到的字符串,第1个元素是该匹配字符串 在目标字符串subject中的偏移量。

$offset:(可选)指定从目标字符串的某个位置开始搜索(单位是字节)。


3.preg_match_all($model,$string,$matches,$flags,$offset)函数在字符串中匹配模式的所有出现
$flags:可选参数
PREG_PATTERN_ORDER:(默认)结果排序为$matches[0]保存完整模式的所有匹配, $matches[1] 保存第一个子组的所有匹配,以此类推。
PREG_SET_ORDER:结果排序为$matches[0]包含第一次匹配得到的所有匹配(包含子组),$matches[1]是包含第二次匹配到的所有匹配(包含子组)的数组,以此类推。

PREG_OFFSET_CAPTURE:使得matches中的每一个匹配结果字符串元素,使其成为一个第0个元素为匹配结果字符串,第1个元素为 匹配结果字符串在subject中的偏移量。


4.preg_quote($string,$delimiter)在每个对于正则表达式语法而言有特殊含义的字符前插入一个反斜线。
这些特殊字符包含: . \ + * ? [ ^ ] $ ( ) { } = ! < > | : -
注意:/不是正则表达式的特殊符号
5.preg_replace($model,$replacement,$string,$limit,$count)函数搜索到所有匹配,然后替换成想要的字符串返
回出来。
$replacement:用于替换的字符串或字符串数组。
$limit;(可选)每个模式在每个subject上进行替换的最大次数。默认是 -1(无限)。
$count:(可选)返回替换的次数
6.preg_split($model,$string,$limit,$flags)通过一个正则表达式分隔字符串
$limit:将限制分隔得到的子串最多只有limit个,返回的最后一个子串将包含所有剩余部分。
$flags:可以是任何下面标记的组合(以位或运算 | 组合):
PREG_SPLIT_NO_EMPTY:preg_split() 将进返回分隔后的非空部分。
PREG_SPLIT_DELIM_CAPTURE:用于分隔的模式中的括号表达式将被捕获并返回。
PREG_SPLIT_OFFSET_CAPTURE:对于每一个出现的匹配返回时将会附加字符串偏移量。

二.量词

01)+表示匹配任何一个或多个前导字符(h+表示一个或多个h,不能是零个)

02)?表示匹配任何零个或一个前导字符(h?表示零个或一个h,不能是多个)

03)*表示匹配任何零个或多个前导字符(h*表示零个或多个h)

04).表示匹配任何一个字符(.*表示零个或多个任意字符)

05){3}表示匹配三个前导字符串

06){3,5}表示匹配三到五个前导字符串

07){3,}表示匹配至少三个前导字符串

08)|表示选择符号,相当于或者,只要有一个匹配就返回true

09)^表示匹配字符串开头

10)$表示匹配字符串结尾

11)^和$一起使用,表示等于(一般不用这样的表达方式,直接用==判断就可以了)

12)()表示包含一个分组或者定义个反引用,可以使用$1,$2提取

三.元字符:[]是正则表达式中的一种语法,表示任意一个字符

[a-z]表示匹配任何包含一个小写字母 a-z的字符

[0-9]表示匹配任何包含一个数字 0-1的字符

[a-zA-Z0-9]匹配任何包含一个小写字母 a-z,大写字母A-Z,数字 0-1的字符串

[^abc]表示任何不包含abc的字符

\d表示[0-9]

\D表示除[0-9]之外的字符串

\w表示[a-zA-Z0-9_]

\W表示除[a-zA-Z0-9_]之外的字符串

\s匹配任何空白字符

\S匹配任何非空白字符

\b表示到达单词边界,边界可以理解为空格或者末尾

\B表示没有到达边界

\表示匹配正则中的特殊字符

四.修饰符(修饰符一般放在规则模式//的外面)

i表示不区分大小写

m表示在匹配首内容或者尾内容时候采用多行识别匹配

x表示忽略正则中的空白

A表示强制从头开始匹配

U表示禁止贪婪匹配,只跟踪到最近的一个匹配符并结束


0 0
原创粉丝点击