正则表达式
描述复杂规则的语法
作用:分割、匹配、查找、替换
可完成的工作:数据验证(手机号码格式、日期格式、邮箱格式)、采集程序等。
//php正则函数://preg_match perl语言基础
//ereg正则 POSIX(Unix、Script)基础
=====基本元素=====
简单原子匹配
//匹配的内容要放在"//"结束符号中
//匹配字符
$mode = '/abc/'; //表达式
$str = 'abcfasdfaabc'; //匹配内容
//匹配数字
$mode = '/12/';
$str = 2234234121245234;
//原括号
$mode = '/(12)/';
$str = 2234234121245234;
//原子表 以中括号为基础,即[],有一个匹配成功则表示成功
$mode = '/[98]/';
$str = 'dfasjhdfasj9fasfasjdf8h'; //匹配内容
//结果:Array ( [0] => 9 ) 9,//9和8当中有一个匹配成功,表示成功
$mode = '/[^98]/'; //9和8当中有一个匹配成功,表示成功
$str = 'dfasjhdfasj9fasfasjdf8h'; //匹配内容
//结果:Array ( [0] => d ) d,不包含9和8
//以上为数字例子,替换成字母一样的效果,在这里就不展示了
转义缩写
$str = 'fasdfasfa232dfsdg56daf8da6';
//匹配数字,原子表,等价于[0123456789]
$mode = '/[0-9]/';
//切换成转义缩写
$mode = '/\d/';
//结果Array ( [0] => 2 ) 2
$mode = '/[^0-9]/'; //等价于/\D/ 除数字以外
//print : Array ( [0] => f ) f
//其他转义,用法一样,不做展示
// \w [a-zA-Z] 所有英文字母
// \W [^a-zA-Z] 所有英文字母除外
// \s [\r\n\f] 回车,换行,分页
if(preg_match($mode , $str , $arr)) {
print_r($arr);
echo $arr[0];
} else {
echo 'no';
}