一.符号
1.“/”是定界符,“/”定界符之间的部分就是将要在目标对象中进行匹配的模式。
同时为了正则更加灵活,引入了元字符,即“+”, “*”,以及 “?”。
(1)“+”元字符规定其前导字符必须在目标对象中连续出现一次或多次
比如:/php+/,能够与“phpp”匹配,即字母ph后面连续出现一个或多个字母p的字符串相匹配。
(2)“*”元字符规定其前导字符必须在目标对象中出现零次或连续多次
比如:/php*/能够与“phpddt”相匹配,即ph后面可以有0个或多个p
(3)“?”元字符规定其前导对象必须在目标对象中连续出现零次或一次。
比如:/php?/能够“pher”匹配,即phh后面可以有0个或者1个p
其他重要的元字符:
\s:用于匹配单个空格符,包括tab键和换行符;
\S:用于匹配除单个空格符之外的所有字符;
\d:用于匹配从0到9的数字;
\w:用于匹配字母,数字或下划线字符;
\W:用于匹配所有与\w不匹配的字符;
. :用于匹配除换行符之外的所有字符。
示例:/\s+/用于匹配目标对象中的一个或多个空格字符
2.定位符用于规定匹配模式在目标对象中的出现位置。
常用的有“^”, “$”, “\b” 以及 “\B”
(1)“^”定位符规定匹配模式必须出现在目标字符串的开头
(2)“$”定位符规定匹配模式必须出现在目标对象的结尾
(3)\b定位符规定匹配模式必须出现在目标字符串的开头或结尾的两个边界之一
(4)“\B”定位符则规定匹配对象必须位于目标字符串的开头和结尾两个边界之内
二.实例
1.邮箱
$email = "2342342@qq.com";
preg_match("/^([a-zA-Z0-9])+([a-zA-Z0-9_-])*@([a-zA-Z0-9])+([.a-zA-Z0-9])+$/",$email);
2.preg_quote:转义正则表达式字符
$str = "php点点通是一个学习php的网站,(⊙o⊙)…";
echo preg_quote($str);
//显示
//php点点通是一个学习php的网站,\(⊙o⊙\)…
3.preg_splite分割字符串
//preg_split("正则","字符串")分割字符串
$php = "+php++点点通++++是好网站";
$field = preg_split("/\+{1,}/",$php);
foreach($field as $f){
echo $f." ";
}
//显示
//php 点点通 是好网站