正则表达式(regularexpression)描述了一种字符串匹配的模式,正则表达式的主要作用:
可以用来检查一个串是否含有某种子串,将匹配的子串做替换或者从某个串中提取符合某个条件的子串等。
PHP第一节基本概念
他是一个特殊的公式,由原子、元字符、模式修正符组成;它也是一个字符串!只不过是一个特殊的字符串主要实现对字符串的匹配、分割、查找、替换等操作第二节正则函数
用单引号定义正则
php的正则是以文本方式声明,文本当中用//包裹正则内容,如果使用双引号,正则中的“$”会被解析为变量(要加\转义符),因此,用单引号定义正则更安全。
PCRE规则与函数
PCRE(PerlCompatibleRegularExpressions)是一个Perl(一种功能丰富的计算机程序语言)兼容的正则表达式库,是以preg开头的一套函数:
第三节元字符
正则模式当中的元字符,通常都具有特殊的含义
注意:
正则需要转义字符:(){}?*+.[]\/^$
第四节模式修正符
对一套正则模式进行调整的符号
$reg=/a(bc){1,3}?/U;
第五节子模式与后向引用
子模式
子模式(子表达式或子匹配),在正则表达式中,可以使用(和)将模式中的子字符串括起来,以形成一个子模式。
定义正则模式
$str=;//身份证号码$reg=/\d{6}(\d{4})(\d{2})(\d{2})/;$n=preg_match_all($reg,$str,$res);var_dump($n,$res);
将小括号()内的值,单独作为数组保存起来
array(size=4)0=array(size=1)0=string18(length=14)1=array(size=1)0=string(length=4)2=array(size=1)0=string12(length=2)3=array(size=1)0=string18(length=2)
后向引用
正则表达式一个最重要的特性就是将匹配成功的模式的某部分进行存储供以后使用这一能力。
对一个正则表达式模式或部分模式两边添加圆括号()可以把这部分表达式存储到一个临时缓冲区中。所捕获的每个子匹配都按照在正则表达式模式中从左至右所遇到的内容按顺序存储。存储子匹配的缓冲区编号从1开始,连续编号至最大99个子表达式。每个缓冲区都可以使用\n(或用$n)访问,其中n为1至99的阿拉伯数字,用来按顺序标识特定缓冲区(子表达式)。$str=scriptalert(web前端)/script;
$字符具有特定的含义。代表第1到第99个子表达式
$str=preg_replace(/script(.*?)\/script/,$1,$str);
结果:$str=alert(web前端)
PHP-函数「程序员培养之路第三十三天」
PHP-流程控制「程序员培养之路第三十二天」
PHP-语言基础「程序员培养之路第三十一天」