<?php
//正则表达式
//1.第一个正则表达式
if("a"=="a"){
echo "equal";
}else{
echo "noequal";
}
echo "<hr>";
//第一个参数表示匹配模式,第二个参数匹配的字符串
echo (preg_match('/php/',"php"));
echo (preg_match('/php/',"php222"));
echo (preg_match('/php/',"p2h2p2"));
$modle = "/php/";
$string = "php";
if (preg_match($modle, $string)) {
echo "success";
}else{
echo "fail";
};
echo "<hr>";
//什么叫做匹配?:按照模式来匹配
//匹配与相等是不同的概念
//2.量词+:匹配任何至少包括一个前导字符串(1个或者多个)
// 前导:前面一个字符,+的前导是h
// h+ 的意思是只要要包括1个h
$model = "/ph+p/";
$string = "phhhhhhhp";
$model = "/ph+p/";
$string = "phhhgggggggggp";
$model = "/ph+p/";
$string = "pp";
echo(preg_match($model, $string))."<hr>";//0
// 3.量词*:匹配任包括0个或者多个前导字符串(0个或者多个)
// * 虽然可以是0个,但是前导字符不能更改,更就不匹配了
$model = "/ph*p/";
$string = "php";
$model = "/ph*p/";
$string = "pp";
$model = "/ph*p/";
$string = "pbbbbp";
echo "<hr>";
// 3.量词?:匹配任何包含1个或者0个前导字符
$model = "/ph?p/";
$string = "pp";
$model = "/ph?p/";
$string = "php";
$model = "/ph?p/";
$string = "phhhp";
echo(preg_match($model, $string))."<hr>";//0
//4.量词(.)匹配任意一个字符
//n个点匹配n个任意字符
$model = "/p.p/";
$string = "php";
$model = "/p..p/";
$string = "phrp";
$model = "/p..p/";
$string = "php";
$model = "/p..p/";
$string = "phhhp";
echo(preg_match($model, $string))."<hr>";//0
//5.(.与*)的配合
//(.*)表示任意前导字符,0个或者多个
$model = "/p.*p/";
$string = "php";
$model = "/p.*p/";
$string = "phhhhhhp";
$model = "/p.*p/";
$string = "pp";
echo(preg_match($model, $string))."<hr>";//1
// 6.量词{x}:表示前导必须是3个
$model = "/ph{3}p/"; // h{3}匹配3个h
$string = "phhhp";
$model = "/ph{3}p/";
$string = "php";
echo(preg_match($model, $string))."<hr>";//0
//7.量词{x,y}:匹配x-y个前导字符串
$model = "/ph{3,5}p/";
$string = "phhhp";
$model = "/ph{3,5}p/";
$string = "phhhhp";
$model = "/ph{3,5}p/";
$string = "phhhhhp";
echo(preg_match($model, $string))."<hr>";//1
//8.量词{x,}:匹配至少x个前导字符串
$model = "/ph{3,}p/";
$string = "phhhp";
$model = "/ph{3,}p/";
$string = "phhp";
$model = "/ph{3,}p/";
$string = "phhhhp";
echo(preg_match($model, $string))."<hr>";//1
//9.$:匹配字符串的行尾
//$一般加载字符串的尾巴上,表示从尾巴开始匹配(以xxx结尾)
$model = "/php/";
$string = "cccccccccccccccc php ccccccccccc";
$model = "/php$/";
$string = "cccccccccccccccc php ccccccccccc";
$model = "/php$/";
$string = "cccccccccccccccccccccccccccphp";
echo(preg_match($model, $string))."<hr>";//1
//10. ^ 表示从头开始匹配
// 表示 以 xxx 开始
$model = "/^php/";
$string = "cccccccccccccccccccccccccccphp";
$model = "/^php/";
$string = "phpcccccccccccccccccccccccccccphp";
echo(preg_match($model, $string));//1
//如果^和$一起使用,表示匹配一模一样的,那就使用==即可
$model = "/^php$/";
$string = "phpcccccccccccccccccccccccccccphp";
echo(preg_match($model, $string))."<hr>";//1
// 10. | : 匹配字符串的左边或者右边
//条件选择符号
$model = "/php|jsp/";
$string = "php";
$model = "/php|jsp/";
$string = "jsp";
$model = "/php|jsp/";
$string = "asp";
$model = "/php|jsp|asp/";
$string = "asp";
echo(preg_match($model, $string))."<hr>";//1
// 11. () : 包围一个字符分组或者
//讲到后面才可以理解
?>