本文实例讲述了PHP正则表达式基本用法。,具体如下:
Demo1.php
<?php
//尝试着写第一个正则表达式
//第一个参数,表示模式(就是和字符串去比较,匹配)
//第二个参数,表示字符串
//如果整个函数模式和字符串比较后匹配了,那么返回真(true)1,否则返回假(false)0
//什么叫匹配,就是一个一个的比较过去
//按照什么规则??按照模式来匹配
//只要模式全部通过,那么就通过
//匹配和相等是两个概念
//因为目前的模式是一个整体,php
//所以,字符串只要有连在一起的 php 三个字符,不管怎样的字符串都能匹配
$mode = '/php/'; //规则模式
$string = 'fsdfsdfsdphpfsdfs'; //字符串
//echo preg_match($mode,$string);
if( preg_match($mode,$string)){
echo '匹配';
}else{
echo '不匹配';
}
//echo preg_match('/php/','php');
// if('a'=='a'){
// echo '相等';
// }else {
// echo '不相等';
// }
?>
Demo2.php
<?php
//什么叫前导,前面的一个字符
//+ 号的前导字符就是 h
//h+ 的意思是,至少包含一个 h
//+ 号的意思
//$mode = '/ph+p/'; //规则模式
//h* 的意思是,零个或者多个 h
//* 号虽然可以是零个,但是前导字符不能更改,更改了,就不匹配了
//$mode = '/ph*p/'; //规则模式
//h? 的意思是,零个或者一个 h
//? 多个前导字符不行
//$mode = '/ph?p/'; //规则模式
//.的意思是,任意一个字符,所以,两个点,就是任意两个字符
//$mode = '/p.p/'; //规则模式
//.* 表示前导任意字符,并且零个或者多个
//$mode = '/p.*p/'; //规则模式
//h{3} 表示,前导必须是3 个,
//$mode = '/ph{3}p/'; //规则模式
//h{3,5}表示,前导必须是 3 到 5 个
//$mode = '/ph{3,5}p/'; //规则模式
//h{3,} 表示,前导至少 3 个 h
//$mode = '/ph{3,}p/'; //规则模式
//$符号,一般加在模式的字符串尾巴上
//表示从尾巴开始匹配
//$mode = '/php$/'; //规则模式
//^表示,从开头进行匹配
//$mode = '/^php/'; //规则模式
//^ 和 $ 一起用的,基本上不要用正则了,直接用 == 号即可
//$mode = '/^php$/'; //规则模式
//| 是一个条件选择符,如果有其中一个,即可匹配。
//$mode = '/php|asp/'; //规则模式
//()
$mode = '/(this) (is) (php|asp)/'; //规则模式
$string = 'this is php'; //字符串
//echo preg_match($mode,$string);
if( preg_match($mode,$string)){
echo '匹配';
}else{
echo '不匹配';
}
?>
Demo3.php
<?php
//元子符
//[]中括号,是一种正则里的语法
//里面的东西表示任意一个即可
//[a-z] 表示 26 个字母中,随便其中一个
//$mode = '/[a-z]/'; //规则模式
//[0-9] 表示 0-9,随便其中一个
//$mode = '/[0-9]/'; //规则模式
//[asv] 其中一个
//$mode = '/[asv]/'; //规则模式
//[a-zA-Z0-9_] 表示其中一个匹配 [a-zA-Z0-9_] 中的任意一个
//$mode = '/[a-zA-Z0-9_]/'; //规则模式
//不是在开头匹配行首的^,而是中括号里的 ^
//[^] 表示匹配除了abc 外都能匹配的字符串
//$mode = '/[^abc]/'; //规则模式
//为了让人们使用更加的方便,w 代表 [a-zA-Z0-9_]
//$mode = '/[w]/'; //规则模式
//W 正好和 w相反
//$mode = '/[W]/'; //规则模式
//d 和 [0-9] 一样
//$mode = '/d/'; //规则模式
//D 和 [^0-9] 一样
//$mode = '/D/'; //规则模式
//s匹配任何空白字符
//$mode = '/s/'; //规则模式
//S不包含空白字符
//$mode = '/S/'; //规则模式
//b表示到达了单词的边界,如果没有到达就不匹配,边界可以理解为空格
//$mode = '/phpb/'; //规则模式
//B 表示没有到达边界
//$mode = '/phpB/'; //规则模式
//因为 + 号是正则里的特殊字符
//如果要匹配特殊字符的话,必须加上
$mode = '/p+p/'; //规则模式
$string = 'p+p'; //字符串
if( preg_match($mode,$string)){
echo '匹配';
}else{
echo '不匹配';
}
?>







