1、正则表达式是一个字符串,用于匹配2、使用PCRE库3、由四部分组成:定界符、原子、元字符、模式修饰符$str="aaa1aa2aa333aaaa";$reg="/\d/";echopreg_replace($reg,"#",$str);print_rpreg_split($reg,$str);if(preg_match($reg,$str,$arr)){print_r($arr);}else{echo"不是matched";}4.原子点a.打印字符(键盘输入的字符)/非打印字符(回车等)b.打印字符除了字母数字下划线等更好转义$ren="/\n/";//匹配回车c.一般:\d任意数字,\D任意非数字,\w任意单词(a-zA-Z0-9_),\W任意非单词,\s为空白(回车TAB空格),\S为非-空白D.自定义原子表:[12348][^a-zA-Z]e.(.)匹配所有5.元字符a.*:修改前面的原子可以出现任意次数b.+:修改前的原子可以appearatleastoncec.?:修饰前的原子可以出现0次或1次d.{m}:修饰前的原子只能出现m次e.{m,n}:该原子出现的次数修改前在2-5的闭区间内f.{m,}:修改前的原子至少出现m次g.|:两边只能出现一个原子,优先级最低的$reg="/abc|efg/";//abc或efg,不是c或e,因为优先级最低h.^或\A:原子必须以某个字符开头,写在正则表达式的前面i.$或\Z:原子必须以字符结尾,写在正则表达式的末尾。j.\b:匹配单词边界;\B:匹配除词边界以外的部分(所谓边界就是一个空格,词中有空格的地方就用b,否则B)k.():(1)改变优先级(2)改变优先级smallatomintoalargeatom,如下:$reg="/(abc)*/";//abc可以出现多次,不只是c(3)Subpattern:整个表达式是一个大pattern,而()是一个独立的子模式。你只想用括号的前两个函数,可以(?:)(4)Backreference:\1指代第一个子模式Mode6.模式修饰符a。写在分隔符的右边,可以组合使用来纠正正则表达式的解释或扩展功能(1)i:不区分大小写(2)m:视为多行,如:每一行可以匹配开头的^和结尾的$(3)s:。可以匹配换行符(.默认不匹配换行符)(4)x:忽略正则表达式中的空格,匹配的字符串不能为空(5)e:(6)U:取消贪心模式,因为不兼容其他语言,建议不要使用。*?或者。+?取消贪心7.正则表达式的写法(详见下一篇:《正则表达式与字符串操作函数》)a.正则表达式是一种算法/语言b。列出要求,一一满足
