正则表达式语法规则

1.行定位符(”^”表示行的开始”$”表示行的结尾)

用来描述字串的边界。
^abc
若要匹配的字串的开头为abc则可以匹配,如(abcdef)
abc$
若匹配的字串的结尾是abc则可以匹配,如(defabc)

单词定位符(\b,\B)

\babc\b
表示匹配完整单词”abc”
\Babc\B
表示匹配的abc不能为完整单词,而是其它单词或者字串的一部分。

字符类([])

正则表达式区分大小写,如果要忽略大小写匹配,示例如下:
[aA][Bb][Cc]

选择字符(|)

意为或,示例如下
(a|A)(b|B)(c|C)
可达到与字符类同样效果。

连字符(-)

表示a到z可以写为
[a-z]

限定符(?*+{n,m})

? 匹配前面的字符零次或一次
+匹配前面的字符一次或多次
*匹配前面的字符零次或多次
{n}匹配前面的字符n次
{n,}匹配前面的字符最少n次
{n,m}匹配前面的字符n到m次

点号字符(.)

.
可以匹配到换行符外任意一个字符。
如匹配s开头t结尾的三个字母的单词。
^s.t$

转义字符(\)

将特殊字符化为普通字符。
如.
则该.表示一个点。

反斜线(\)

可将不可打印的字符显示出来。
https://blog.csdn.net/weixin_28687685/article/details/115143198
有具体说明各字符作用。

括号字符(())

改变限定符作用范围等。

反向引用

看不懂

模式修饰符

设定模式
i 忽略大小写
m 多文本模式,字符串内部有多个换行符的时候,影响^$的匹配。
s 单文本模式,再次模式下,元字符点号(.)可以匹配换行符,其他模式不行。
x 忽略空白符。
使用如下:
/abc/i

PCRE风格的正则表达式函数。

preg_grep($a,$b)函数

b为被匹配的数组
a为用来匹配的表达式(即用上方规则指定的格式化内容)
函数返回数组。

preg_match($a,$b,$c)函数和preg_match_all()函数

在字符串$b中匹配表达式$a,函数返回匹配的次数。
如果有数组$c,则返回的结果都被储存在数组$c中。

前者只会返回0或1,它在匹配成功后就会停止继续匹配。
后者则会一直匹配到字符串最后,且$c数组对后者来说是必须的,对前者来说可有可无。

preg_quote($a,[$b])函数

该函数将前者字符串的特殊字符进行自动转义。
如果有后者则后者字符也进行转义。
函数返回转义后的字串。
即后者即便为正常字符也会被转义后返回。

preg_replace($a,$b,$c,[$d])函数

该函数以$a表达式在$c中匹配,并将匹配项替换为$b。如果有$d,则替换$d次。

preg_replace_callback()函数

其余与上个函数相同,本函数将上个函数的$b替换为回调函数。
回调函数中,字符串使用“””可以保证字符串中的特殊符号不会被转义。

preg_split($a,$b,[$c])函数

使用$a表达式来分割$b字符串,如果有参数$c,那么数组最多有$c个元素。