老板不在,嚣张的正则
hi
RT
1、正则表达式
--preg_grep($pattern,array$input)
阉割版preg_filter(),只匹配不替换
--preg_split($pattern,$subject)
返回数组,把$subject在$pattern分割点分割开
--preg_quote($str)
将正则运算符转义,防止混淆
.\+*?[^]$(){}=!<>|:-
--总结
共性:都以preg_开头
基本上第一个参数都是$pattern
用法:表单验证-match
非法词过滤-replace
---正则表达式基本语法
--界定符,原子,量词,边界控制,模式单元
--界定符:/或者#或者{}(一般不用大括号,歧义太多)
-开始和结束位置
-$pattern='/字符串/';
--regexpal工具
-http://regexpal.isbadguy.com/
--原子
-最小的匹配单位
-可见原子(Unicode编码表中庸键盘打出的可见的):标点,各种语言文字,数理化公式符号,其他可见字符
-不可见原子:换行符\n,回车\r,制表符\t,空格,其他
-一般都是直接输入,遇见重复的或者关键词,加转义,比如\$
--元字符
-筛选
| 匹配两个或多个,即或者
[] 匹配括号内任意一个原子,特殊[1-3],这里的-是“到”的意思
[^] 同上互逆,匹配除括号内的所有原子
注意:用^要小心,会匹配所有其他的,包括空格等不可见原子;再有就是^要和其他原子紧贴顶头写
-定义原子的集合
. 等价于[^\n],匹配除换行符之外的任意字符——基本上就是所有的
\d [0-9]匹配一个十进制数字
\D [^0-9]匹配一个非十进制数字
\w [0-9a-zA-Z]匹配一个数字、字母或下划线
\W [^0-9a-zA-Z]匹配一个非数字、字母或下划线
\s 匹配一个不可见原子
\S 匹配一个可见原子
--量词
-表示某个原子连续出现多少次
-{n} 表示其前面的原子恰好连续出现n次——5{3}
-{n,} 表示其前面的原子至少连续出现n次
-{n,m} [f|5]{3,6}表示连续出现n次,最多m次,就是n到m次
-* 任意次,只要连续,都匹配,{0,}
-? {0,1}0到1次
-+ {1,}至少有1次
2、PHP
---面向对象
--什么是对象
-Object Oriented(OO)
-世间万物皆对象——一切可见的、不可见的(某个抽象概念),即某个东西
--对象的基本组成
-两部分:属性和方法
-属性:数据模型,用于描述对象的数据
-方法:行为模型,用于描述对象能够做什么
--对象的特点
-独一无二
-是一个特定事物,职能是完成特定功能
-是可以重复使用的
--什么是面对对象
-面向,就是编程时一直想着对象(......)
-面向对象,就是编程时,所有的数据结构都通过对象的结构进行存储
-WHY:对象的描述方式(思路),更加贴合真实情况,有利于大型业务的理解
--面对对象的实质
-把生活中要解决的问题都用对象的方式进行存储,属性+方法
-对象和对象之间的互动:通过方法的调用完成(考虑詹姆斯打篮球的例子)
--面向对象的基本思路
-第一步,识别对象
-第二步,识别对象的属性——由于对象不同的业务逻辑,关注点不同,属性类型不同
-第三步,识别对象的行为(透过行为识别其方法)
--面向对象的基本原则
-内部是高内聚的:只负责一项特定的职能;对象的相关内容全都封装在内部,属性+方法
-对外是低耦合的:外部只能看到对象的一些属性、一部分方法(行为)——低耦合要比高内聚重要