T4《正则表达式与异常处理》.docx

上传人:b****6 文档编号:8798171 上传时间:2023-02-01 格式:DOCX 页数:11 大小:58.62KB
下载 相关 举报
T4《正则表达式与异常处理》.docx_第1页
第1页 / 共11页
T4《正则表达式与异常处理》.docx_第2页
第2页 / 共11页
T4《正则表达式与异常处理》.docx_第3页
第3页 / 共11页
T4《正则表达式与异常处理》.docx_第4页
第4页 / 共11页
T4《正则表达式与异常处理》.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

T4《正则表达式与异常处理》.docx

《T4《正则表达式与异常处理》.docx》由会员分享,可在线阅读,更多相关《T4《正则表达式与异常处理》.docx(11页珍藏版)》请在冰豆网上搜索。

T4《正则表达式与异常处理》.docx

T4《正则表达式与异常处理》

第4章《正则表达式与异常处理》

授课讲师:

衡茜

课时:

2小时

本章目标:

1.掌握POSIX正则表达式

2.掌握Perl正则表达式

3.熟练使用PHP正则表达式

4.能够处理各种异常

5.

本章重点:

1.正则表达式的使用

2.异常处理

本章难点:

1.正则表达式

回顾重点:

1.PHP数组、字符串以及相应的常用函数

2.PHP的面向对象

内容讲解:

一、POSIX风格正则表达式

(一)引入

关于正则表达式:

1.正则表达式就是描述字符串排列模式的一种自定义语法规则。

2.如果可以使用字符串处理函数完成的任务,就不要使用正则

3.有一些复杂的操作,只能使用正则完成。

4.正则表达式是由具有特殊意义的字符组成的字符串

5.正则表达式必须在函数中应用才能发挥正则表达式的作用

PHP中提供两种正则表达式及两套正则表达式函数库,其功能一致,现在较多使用的是与Perl语言兼容的perl风格正则表达式.

学习正则表达式就是学习两方面的内容,1.正则表达式编写的规则模式2正则表达式函数的应用

(二)定义/语法

POSIX风格的正则表达式由正则字符和元字符构成,二者联合构成了一个文本模式的程序描述。

因此正则表达式允许对文本内的模式和子模式进行匹配

(三)特点

1.严格区分大小写

2.由正则表达式字符(字母,逗号,数字等)和元字符(星号,括号等)构成

(四)场合

1.灵活变通地匹配、检验、替换以及修改字符串。

(五)使用

1.元字符:

有特定意义的字符

字符

含义

()

将不同的字符串组成一组,也称为子模式

[]

定义字符集合

{}

指定重复次数

^

在字符串的开始匹配或者表示不在某个字符串集合内

$

在字符串的结尾匹配

.

匹配除换行符(\n)之外的任意字符

?

重复零次或者一次

*

重复零次或者多次

+

重复一次或者多次

\

转义字符

|

或者,选择分支的标识

2.字符集:

字符的范围,可以匹配指定类型的任何字符

字符

含义

[a-z]

小写字母字符

[A-Z]

大写字母字符

[a-zA-Z]

大小写字母字符

[0-9]

数字字符

[0-9\+\-\*\\]

数字字符、加号、减号、乘号和除号

[\f\r\n\t]

空白字符

3.字符类:

预定义字符集(定义过的字符集),对整个字符范围进行指定

字符类

含义

[[:

alnum:

]]

字母字符和数字字符,等价于[a-zA-Z0-9]

[[:

alpha:

]]

字母字符,等价于[a-zA-Z]

[[:

upper:

]]

大写字母字符,等价于[A-Z]

[[:

lower:

]]

小写字母字符,等价于[a-z]

[[:

digit:

]]

数字字符,等价于[0-9]

[[:

blank:

]]

空格符和制表符

[[:

space:

]]

空白字符,包括空格、水平制表符、垂直制表符、换行、换页、回车

[[:

print:

]]

可打印字符

[[:

ascii:

]]

7位ASCII码

[[:

xdigit:

]]

十六进制字符,等价于[a-fA-F0-9]

[[:

punct:

]]

标点符号

[[:

graph:

]]

ASCII码从33~126之间可打印字符

4.量词/限定符:

指定字符必须出现的次数

字符

含义

*

重复任意次(包括零次)

+

重复一次或多次

?

重复零次或一次

{n}

重复n次,其中n上一个非负整数

{n,}

重复至少n次,其中n是一个非负整数

{n,m}

重复至少n次到m次,其中m和n均为非负整数并且m大于n

5.

二、POSIX风格正则表达式函数

(一)引入

函数名多数以ereg开头

(二)定义/语法

(三)特点

1.

(四)场合

1.

(五)使用

1.ereg()函数:

在字符串中查找与指定正则表达式模式匹配的子串

语法:

intereg(正则表达式,字符串[,])

2.split()函数:

使用正则表达式把字符串拆分为较小的块,并作为一个数组返回

3.ereg_replace()函数:

用来查找和替换子字符串。

与字符串处理函数str_replace()实现的功能相同

三、Perl正则表达式

(一)引入

Perl正则表达式英文名称为PerlCompatibleRegularExpression,缩写为PCRE。

PCRE库包括一套执行常用表达模式的函数,语法来源于Perl语言。

与POSIX正则表达式不同,Perl正则表达式需要以分隔符作为开始和结束标识。

Perl正则表达式通常使用正斜杠“/”作为定界符,Java和JavaScript中的正则表达式的写法和PHP中差不多,只是函数不同而已

(二)定义/语法

(三)特点

1.

(四)场合

1.

(五)使用

1.定界符:

需要以分隔符作为开始结束标记,通常是/(正斜杠)

2.perl修饰符:

在Perl正则表达式的最后一个分隔符/后,可以添加Perl修饰符来更改正则表达式的行为

修饰符

说明

i

忽略大小写

m

除了匹配字符串的开始和结尾还匹配其中的换行符的之后或之前

s

模式中的圆点元字符“.”匹配所有的字符

x

表达式中的空白字符将会被忽略,除非它已经被转义

D

模式中的美元元字符仅匹配目标字符串的结尾

U

和问号的作用相似(多次匹配)

3.元字符

元字符

含义

\A

匹配字符串的开头

\B

匹配除单词边界之外的任意字符

\b

匹配单词边界

\D

匹配非数字字符

\d

匹配数字字符,等价于[0-9]

\S

匹配非空白字符

\s

匹配空白字符

\W

匹配任意字母和数字

\w

匹配任意非单词字符

[]

匹配指定范围内的其中一个字符

()

用于将正则表达式和元字符或表达式进行组合

$

匹配字符串的结束

^

匹配字符串的开始

.

匹配除换行之外的任何一个字符

{x}

重复x次

{x,y}

至少重复x次,最多重复y次

{x,}

至少重复x次

*

重复0次或更多次

?

重复0次或1次

+

重复1次或多次

|

匹配其中任意一个

\

转义字符

4.啊

四、Perl正则表达式函数

(一)引入

PHP为使用Perl兼容的正则表达式提供了7个常用的函数,包括:

preg_grep()、preg_match()、preg_match_all()、preg_quote()、preg_replace()、preg_replace_callback()和preg_split()。

利用这些函数可以方便地实现对字符串的搜索与替换、分割与合并

(二)定义/语法

(三)特点

1.函数名都以以preg_开头

(四)场合

1.

(五)使用

1.preg_grep()函数:

按指定的正则表达式搜索和匹配。

其对一个数组进行匹配和搜索,搜索成功则返回匹配的数组元素

2.preg_match()函数:

按指定的正则表达式搜索和匹配一次

3.preg_split()函数:

将字符串按指定的规则进行分割,用法和split()方法非常相似,只是函数preg_split()只是使用正则表达式

总结:

POSIX及Perl区别

字符集

函数

定界符

POSIX风格正则表达式

[[:

xxx:

]]的形式,

比如[[:

alnum:

]]

多数以ereg开头

Perl风格正则表达式

\x的形式,比如\w

以preg开头

必须,常用/

正则表达式

优点

1.简化代码

2.可以做复杂字符串处理

缺点

1.编写维护难度较高

2.性能比字符串处理函数低

五、错误和异常处理

(一)引入

在项目开发过程中,错误和异常是不可避免的,也是任何程序

员不希望发生的。

为了尽可能多地避免类似情况,所以程

序员必备的能力之一就是如何有效地调试错误并修改错误。

PHP

中提供了许多有效方法来处理错误和异常,如错误级别控制、

错误显示控制和自定义错误等。

不仅如此,在PHP5中还针对类特

别地引入了异常处理机制,增强了PHP的错误调试功能

(二)定义/语法

(三)特点

1.常见的基本错误类型分为

1)语法错误

2)逻辑错误

3)定义错误

4)环境错误

5)运行错误

2.PHP的错误级别

名称

含义

E_ERROR

致命的运行错误,中断程序的执行

E_WARNING

运行警告,不中断程序的执行

E_PARSE

编译错误,PHP强制中止执行操作

E_STRICT

PHP版本可移植性建议

E_NOTICE

错误警告,默认情况下不输出主意信息

E_CORE_ERROR

内部错误,扩展启动失败导致的,会导致PHP运行退出。

E_CORE_WARNING

有PHP的核心产生,通常是由一个PHP扩展加载时失败引发。

PHP引擎将终止运行

E_COMPILE_ERROR

编译错误,与E_PARSE不同,这个错误会导致PHP运行退出。

E_COMPILE_WARNING

PHP编译时产生,提示用户在使用一些过时的语法。

E_USER_ERROR

用户定义错误导致PHP退出执行。

用户定义错误(E_USER_*)不是来自PHP本身,而是包含在脚本中。

E_USER_WARNING

用户定义的警告信息。

可用于脚本可能发生错误的信号。

E_USER_NOTICE

用户定义的通告可以用来在脚本中可能存在错误。

E_ALL

报告所有的错误和警告,包括上面所有的错误

3.啊

(四)场合

1.

(五)使用

1.ini_set()函数:

控制PHP错误异常报告的设置是“display_errors”。

当PHP环境中已经关闭了错误报告(display_errors=off)、在维护过程中又要立刻显示程序错误的时候,就需要用到“ini_set()”方法

ini_set("display_errors","off");//报错关闭

ini_set("display_errors","on");//报错开启

2.正则表达式函数:

当程序出现错误或者用户操作不当时,我们可以使用trigger_error()函数来触发自己定义的错误信息

3.自定义错误页面的使用:

当程序出现错误或者用户操作不当时,我们可以使用trigger_error()函数来触发自定义的错误信息

其第2个参数允许的值为:

E_USER_ERROR

E_USER_WARNING

E_USER_NOTICE

4.

六、PHP的基本异常类

(一)引入

Java及C#语言中都有trycatch用来捕获异常,同样也有Exception类,PHP中是怎么做的呢?

(二)定义/语法

(三)特点

1.

(四)场合

1.

(五)使用

1.扩展基本异常类:

PHP5支持用户使用自定义的异常处理类来扩展PHP内置的异常处理类。

对基于异常类Exception进行扩展,最普遍的方法就是通过类的继承来实现。

具体做法就是:

自定义一个子类继承于Exception类,这样子类就继承了父类的所有属性和方法,并且还可以添加子类所特有的属性和方法。

2.

本章总结:

1.正则表达式可以帮助程序员快速开发,大大减少项目代码量

2.正则表达式提高开发效率,达到事半功倍的效果

3.错误和异常处理机制可以帮助程序员快速获取项目的完美性

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1