PHP 7+MySQL 8动态网站开发从入门到精通(视频教学版)
上QQ阅读APP看书,第一时间看更新

5.8 高手甜点

甜点1:模式修饰符、单词界定符和方括号“[]”连用,还是和“/”在一起使用?

在PHP正则表达式的语法中,一种是POSIX语法,另一种是Perl语法。POSIX语法是先前所介绍的语法。Perl语法则不同于POSIX语法。Perl语法的正则表达式以“/”开头和以“/”结尾,如“/name/”便是一个Perl语法形式的正则表达式。

模式修饰符是在Perl语法正则表达式中的内容。例如,“i”表示正则表达式不区分字母大小写;“g”表示找到所有匹配的字符;“m”表示把目标字符串作为多行字符串进行处理;“s”表示把目标字符串作为单行字符串进行处理,忽略其中的换行符;“x”表示忽略正则表达式中的空格和备注;“u”表示在首次匹配后停止。

单词界定符也是Perl语法正则表达式中的内容。不同的单词界定符表示不同的字符界定范围。例如,“\A”表示仅仅匹配字符串的开头;“\b”表示匹配到单词边界;“\B”表示除了单词边界,匹配所有;“\d”表示匹配所有数字字符,等同于“[0-9]”;“\D”表示匹配所有非数字字符;“\s”表示匹配空格字符;“\S”表示匹配非空格字符;“\w”表示匹配字符串,如同“[a-zA-Z0-9_]”;“\W”表示匹配字符,忽略下画线、字母和数字字符。

甜点2:支持Perl语法形式的正则表达式有哪些?

PHP为Perl语法的正则表达式提供了如下函数。

(1)preg_grep()用来搜索一个数组中的所有数组元素,以得到匹配元素。

(2)preg_match()以特定模式匹配目标字符串。

(3)preg_match_all()以特定模式匹配目标字符串,并且把匹配元素作为元素返回给一个特定数组。

(4)preg_quote()在每一个正则表达式的特殊字符前插入一个反斜杠(\)。

(5)preg_replace()替代所有符合正则表达式格式的字符,并返回按照要求修改的结果。

(6)preg_replace_callback()以键值代替所有符合正则表达式格式字符的键名。

(7)preg_split()按照正则模型切分字符串。