老板娘不以,嚣张的正则。正则表达式学习笔记。

防止混淆,*边界控制

hi

一致、正则表达式基本语法:###\

*界定符
*原子
*元字符
*量词
*边界控制
*模式单元

RT

1. 界定符#####\

<pre>
表示一个正则表达式的启和终结。(如:/[0-9]/或#[0-9]#或{[0-9]})
貌似以/或#作界定符,不建议就此{}
</pre>

1、正则表达式

2. 原子#####\

<pre>
(1)可见原子:Unicode编码表中因故键盘输出后眼睛可见的字符
如:标点;”_?.等,英文字母数字a-z A-Z 0-9,其他可见字符等
(2)不可见原子:Unicode编码表中因故键盘输出后眼睛不可见的字符
如:换行符\n,回车\r,制表符\t,空格,其他不可见符号
</pre>

–preg_grep($pattern,array$input)

3. 元字符#####\

<pre>
(1)原子的淘方式:
| 匹配两只或基本上只分支选择;
[] 匹配方括号中之擅自一个原子;
[^] 匹配除方括号受之原子之外的人身自由字符;

(2)原子的聚合:
. 匹配除换行符之外的随机字符,即[^\n];
\d 匹配任意一个十进制数字,即[0-9];
\D 匹配任意一个非十进制数字,即[^0-9];
\s 匹配一个不可见原子,即[\f\n\r\t\v];
\S 匹配一个可见原子,即[^\f\n\r\t\v];
\w 匹配任意一个数字、字母或下划线,即[0-9a-zA-Z_];
\W 匹配任意一个非数字、字母或下划线,即[^0-9a-zA-Z_];
</pre>

阉割版preg_filter(),只相当不替换

4. 量词#####\

<pre>
{n} 表示该前方的原子恰好出现n次;
{n,} 表示该面前的原子最少出现n次;
{n,m} 表示该前方的原子最少出现n次,最多起m次;

  • 匹配配0不好、1不好或数那个事先的原子,即{0,};

  • 匹配1不善还是频繁其前的原子,即{1,};
    ? 匹配0蹩脚或1涂鸦其事先的原子,即{0,1};
    </pre>

–preg_split($pattern,$subject)

5. 境界控制#####\

<pre>
^ 匹配字符串开始的岗位;
$ 匹配字符串结尾的职务;
</pre>

返回数组,把$subject在$pattern分割点分割开

6. 模式单元#####\

<pre>
() 匹配其中的共同体为一个原子;
</pre>

–preg_quote($str)

仲、模式修正:###\

用刚刚则运算符转义,防止混淆

1.懒懒惰匹配与贪婪匹配#####\

<pre>
(1) 贪婪匹配:匹配结果有歧义时得到该丰富(默认为贪婪模式)
(2) 懒惰匹配:匹配结果是歧义时取该不够(懒惰模式标识:U
即:只需要以正则表达式的尾声加上U 如:/so.+234/U)
</pre>

.\+*?[^]$(){}=!<>|:-

2.大修正模式#####\

<pre>
U 懒惰匹配;
i 忽略英文字母大小写;
x 忽略空白;
s 让元字符’.’匹配包括易行符在内的富有字符;
e 配合函数preg_replace()使用,可以管匹配来之字符串当作正则表达式执行;
</pre>

–总结

老三、PHP中常用的正则表达式函数:###\

共性:都以preg_开头

1. preg_match()与preg_match_all()#####\

<pre>
preg_match($pattern,$subject,[array &matches])
其三只参数是传递引用,参数可选取;
preg_match()只见面在$subject中匹配同不良;
return 匹配的次数(0次要1不行)
preg_match_all($pattern,$subject,array &matches)
其三个参数是传递引用,参数必填;
preg_match_all()会将$subject中持有符合的相当出来;
return 匹配的次数(0次或者累)
</pre>

         基本上第一只参数都是$pattern

2. preg_replace()与preg_filter()#####\

<pre>
preg_replace($pattern,$replacement,$subject)
return
返回给替换后的结果,(当为数组集时:不管替换部分与没替换部分还见面回来);
preg_filter($pattern,$replacement,$subject)
return
返回替换后的结果,(当为数组集时:只保留为替换了之,没有替换的一对无回来;)
</pre>

所以法:表单验证-match

3. preg_grep()#####\

<pre>
preg_grep($pattern,array $input)
return 只回给匹配到之结果集,没有匹配到的哪怕了滤掉不回来
</pre>

         非法词了滤-replace

4. preg_split()#####\

<pre>
preg_split($pattern,$subject)
return 用相当到的结果失截取字符串,将截取后底结果回到;
</pre>

 

5. preg_quote()#####\

<pre>
preg_quote($str)
恰好则运算符转义,如: .\+*?[^]$(){}=!<>|:-
</pre>

—正则表达式基本语法

–界定符,原子,量词,边界控制,模式单元

–界定符:/或者#或者{}(一般不要大括号,歧义太多)

-开始跟终结位置

-$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:对象的叙述道(思路),更加贴合真实情况,有利于大型业务的明白

–对对象的精神

-把生活着若解决之题目都用对象的方式展开仓储,属性+方法

-对象同对象中的相互:通过艺术的调用完成(考虑詹姆斯打篮球的事例)

–面向对象的基本思路

-第一步,识别对象

-第二步,识别对象的属性——由于目标不同的事体逻辑,关注点不同,属性类型不同

-第三步,识别对象的作为(透过行为识别其法)

–面向对象的主干原则

-内部是高内聚的:只承担同项特定的效力;对象的相关内容都封装于里,属性+方法

-对外是亚耦合的:外部只能看到目标的有的性质、一部分方式(行为)——低耦合要比高内聚重要