第9章 正则表达式-【千锋教育】PHP从入门到精通
|
40页
|
116人阅读
|
0人下载
教辅
内容正文:
第9章 正则表达式
初识正则表达式
正则表达式语法规则
正则表达式相关函数
正则表达式常见应用
正则表达式用法自查表
初识正则表达式
正则表达式语法规则
☞点击查看本小节知识架构
正则表达式相关函数
9.2
9.3
9.1
☞点击查看本小节知识架构
☞点击查看本小节知识架构
正则表达式常见应用
正则表达式用法自查表
9.4
9.5
☞点击查看本小节知识架构
学习目标
了解
掌握
掌握
理解
了解正则表达式的相关概念
1
掌握正则表达式的常见应用
4
2
掌握表达式的语法规则
3
理解正则表达式的相关函数
销售额 掌握知识 理解知识 熟悉知识 了解知识 2.5 2.5 2.5 2.5
9.1 初识正则表达式
9.1.1
正则表达式的概念
返回目录
9.1.2
正则表达式应用场景
9.1 初识正则表达式
9.1.1 正则表达式的概念
正则表达式是一种描述字符串结构的语法规则,是一个特定的格式化模式,可以匹配、替换、截取匹配的字符串。简单一点讲,正则表达式就像一把筛子,筛选出符合用户需要的各种数据,如图所示。
9.1 初识正则表达式
9.1.2 正则表达式应用场景
使用正则表达式解决问题,离不开一个词语“匹配”,例如,匹配单个字符、匹配一组字符串、匹配(或搜索)某一个大的内容范围里是否有用户需要的信息或数据等。在正式讲解本章内容之前,请大家认真思考以下两个场景:
有一张用户注册表单,表单中需要用户输入电子邮件地址。当用户完成邮件地址输入时,程序需要检查用户输入的电子邮件地址是否符合正确的语法格式,即是否是xxxxxx@xx.com这种邮箱格式
要搜索一个包含着单词reg(不区分大小写)的文件,但并不要求把包含字符串reg的其他单词(如regular、regret、regression、regressive)也搜索出来。
9.1 初识正则表达式
9.1.2 正则表达式应用场景
以上是大家编写程序时经常会遇到的场景,可以通过遍历字符串并在循环体中套用一系列if判断语句的方法来解决,但这样做的缺点也很明显,会造成程序性能低下、代码冗余、阅读性差等问题。
除此之外,另外一种较为简单的解决方案是使用正则表达式。正则表达式在字符串的匹配、查找、替换等方面具有很强的优势,上述场景中的需求都可以使用正则表达式实现。
9.2 正则表达式语法规则
9.2.1
行定位符
返回目录
9.2.2
单词定界符
9.2.3
字符类
9.2.4
选择字符
9.2.5
连字符
9.2.6
反义字符
8
9.2 正则表达式语法规则
9.2.7
限定符
返回目录
9.2.8
点字符
9.2.9
转义字符
9.2.10
反斜线
9.2.11
括号字符
9.2.12
反问引用
9
9.2 正则表达式语法规则
一个完整的正则表达式由元字符和文本字符两部分构成。接下来,本节将围绕不同的元字符讲解正则表达式的使用。
9.2 正则表达式语法规则
正则表达式通过行定位符(^和$)支持定位功能。行定位符用来描述字符串的边界,它可以确定字符在字符串中的具体方位,例如,^表示匹配输入字符串开始的位置,$表示匹配输入字符串结尾的位置。
为方便大家记忆和掌握,下面针对^和$两种行定位符作详细介绍,具体示例如下所示。
9.2.1 行定位符
9.2 正则表达式语法规则
单词定界符(\b和\B)是用来描述单词或非单词的边界,如匹配单词和空格间的位置。它有两种表现形式,一种是\b,表示匹配一个单词边界,也就是指单词和空格间的位置;另一种是\B,表示匹配非单词边界。
为方便大家理解和掌握,下面针对\b和\B两种单词定位符作详细介绍,具体示例如下所示。
9.2.2 单词定界符
9.2 正则表达式语法规则
在使用正则表达式匹配字符串时,有时会遇到忽略字母大小写的情况,此时可以使用方括号表达式([])。例如,要匹配字符串“Qf”不区分大小写,其表达式的格式如下所示。
9.2.3 字类符
上述表达式匹配字符串“Qf”的所有写法,如qf、Qf、qF、QF都可以匹配。
9.2 正则表达式语法规则
针对字符类的常见使用,POSIX和PCRE都使用了一些预定义字符类,但表示的方法略有不同。POSIX风格的预定义字符类如表所示。
9.2.3 字类符
表中列举了POSIX中的一些预定义字符类,这些字符类都是使用单词来表示的,而PCRE的预定义字符类则是使用反斜线表示的,关于PCRE预定义字符类的相关知识,将在后面的小节中进行详细讲解。
9.2 正则表达式语法规则
选择字符(|)表示的意义相当于“或”,例如,如果要匹配字符串“qf”并且不区分大小写,其表达式的格式如下所示。
9.2.4 选择字符
上述表达式匹配字符串“Qf”的所有写法,如qf、Qf等。除了匹配单个字符外,“|”也同样可以匹配字符串。例如,上述表达式