当前课程知识点:PHP程序设计 > 字符串函数 > 正则表达式 > 正则表达式原子讲解1
那么我们接下来要讲的是原子对吧
接下来要讲的是原子
原子是什么呢
原则是正则表达式最基本的组成单位
也就是说
每个正则表达式里面都至少要包含一个原子
至少包含一个原子
那么我们原子它是由什么东西组成的呢
它分了几类
对吧分了几类
所以我们逐一的来写一下
第一个是所有的
打印字符和非打印字符
那么什么是所有的打印字符和非打印字符
各位同学可以看一下键盘
我们键盘上的那些随便敲一个
就会出现一个字母的那种键是叫打印字符
但是呢
我们键盘上是不是还有一些键
比如说回车
我敲一下并没有在屏幕上显示什么对不对
空格或者回车在屏幕上并没有显示出什么
而那些字符被称为非打印字符
所以就说我的键盘上所有的大写字母
小写字母 数字 标点符号
包括我们的1234上面的那些特殊符号
它们都算打印字符
那么非打印字符主要就说的什么
换行符 回车符
空白 制表符 垂直制表符
诸如此类的东西都叫非打印字符
也就是说正则表达式由什么东西组成的
所有的打印字符非打印字符
那是不是就我这个地方
就是所有的字母都可以组成原子
没错
特殊字符可不可以呢
也可以对吧也可以
包括空白
就是我说的制表符 空格 回车可不可以呢
yes 也可以对吧
都是可以的
那么咱们就来看一个最简单的例子吧
比如说先看看之前的那个例子吧
对吧先看下之前这个例子
这里面有没有打印字符
这是不是
标准的
然后这个看着有点奇怪
这个可以明确的告诉大家
确实不是
我们马上就会学到了对吧
但是img这它肯定是
src这是不是呢
yes没错
包括sre=是不是呢
是不是这都是标准的打印字符OK
这些都是
大家现在这样子看是不是
突然感觉它有点像什么呀
你们在哪个地方曾经见过这样的东西
好像在大家的网页设计课里面是不是见过
这跟网页里面写成这种样子的像是什么呀
是不是你们做的什么图片背景啊
没错
其实我可以告诉大家
这串正则表达式是干什么呢
匹配网页中的所有图片
那么
如果咱们的这个放在匹配函数里面
再放在一个python爬虫里面的话
那么你的这一段
就可以把那个网页中所有的图片
也就是背后静态网页设计
用这种方式写到的所有图片
都可以把它爬取下了
对这就是一个网页中的所有图片
这样子的一个
那么我们后期会一点点讲
那很显然
这些咱们已经说了
这就是打印字符
那么我们可以先写一个
比如说
abc
我在定界符号里面写一个abc
这可以匹配什么
是不是这个正则表达式abc
就像刚才大家看到的img一样
是不是相当于去匹配一个里面有img的东西
同样的这写一个abc
我这儿可以写
一串1
只要这一串1里面有abc
你说能不能匹配成功呢
是不是就可以匹配成功啊
来我们来看一眼
匹配成功了
但是如果这一串里面没有abc
大家毫无疑问的
这意味着什么呀
是不是匹配失败了
所以呢
我们只要这里面有这个符合我们约定好的
a后面是b后面是c
当然了我们就说
如果我只有一个ab能匹配成功吗
能匹配成功吗
不行不能匹配
你ab后面必须要有c才可以
你这是连着的
那同样的大家可以看这个
我刚才说的是网页中的图片
大家当初想学网页设计的时候
插图片是不是都写的是这个东西啊
所以呢
你是不是就是匹配了网页中的
你不能说一个i
或者一个mg我们就匹配了
咱必须这仨是连在一起的img
必须是这样连在一起的
把网页中所有的连在一起的img全部都找出来
全部都找出来
找出来之后呢后面还应该有什么
src=是不是
这是什么
就是网页设计里面的什么图片来源对不对
图片来源src=这个也是
它们四个必须要连在一起
只要有它们恭喜你
你就找到了
当然了
要先有它再有它中间还有一些约束
我们再说对吧我们再说
所以这就是最简单的
所有的打印字符
非打印字符就可以作为原子
当然啦
这是最基本的
然后我们接着往下看对吧
接着往下看
第二个
刚才咱们说了
在这个里面会有一些特殊意义的字符
我在这块列举一下
列举一下
加号
问号
然后还有什么呢
还有我们的这个尖括号
英文的尖括号
然后还有什么括号
这些东西在咱们的这个正则表达式
这些符号它有特殊意义
说白了
咱们会在元字符这一部分逐一的去讲
这些符号有什么样的意义
但是这些符号是不是也都是
我们键盘上面的打印字符呀
那么有特殊意义的这个部分
如果你也想当原子用的话
那么你需要用转义字符给它做一个转义
就跟我们之前学的C学的PHP基础一样对不对
那么如果有特殊意义的东西
在这个程序语言里面有特殊意义的东西
我们需要把它转义一下
转译成它本身的那个意义
不要具有这些特殊的意义
对吧
这块标注一下
具有特殊意义的字符想作为原则使用
那么需要
这个符号对吧
转义字符
做一个转义
需要用这个
应该是正斜线做一个转义
对吧做一个转义
那么我们再来看一下
注意啊就是这些符号
这些符号包括这个尖括号也是
都需要也就是说
你如果真的想让它就是意义是一个尖括号的话
你需要做一个转义
不然的话
人家在元字符里面
它们是有意义的
再来看一下这个例子
你没有发现这个正则表达式里面
是不是有特别多的这种符号
但是现在把它连起来看
你会发现这是什么呀
是不是其实这个你一个正斜线
一个尖括号其实是什么
就是一个尖括号对不对
只不过做了个转义好的
这个s好的
我告诉你这个不是对吧
那你接着往下看
这个其实是什么
一个双引号好吧
这个是什么
是另外一个双引号
好的这个是什么
好的这是一个反斜线对吧
这是一个反斜线
只不过也做了一个转义
然后这是什么
这是另外一边的那个尖括号
好的看起来乱七八糟的东西
现在其实复杂吗
不复杂
只不过我们这个地方加了诸多的转义符号
对吧加了诸多的转义符号
你发现这全部都在转义
这全部都在转义对吧
全部都在转义
-PHP概述
-PHP概述--作业
-开发环境搭建
--开发环境搭建一
--开发环境搭建二
--集成环境的安装
-开发环境搭建--作业
-PHP语法入门
--语法入门一
--语法入门二
-PHP数据的输出
--数据输出
-PHP数据类型
--数据类型1
--数据类型2
--数据类型3
--数据类型4
--数据类型5
--数据类型6
-PHP常量和变量
--常量和变量1
--常量和变量2
--常量和变量3
--常量和变量4
--常量和变量5
--常量
-PHP常量和变量--作业
-PHP的运算符和表达式
--运算符和表达式1
--运算符和表达式2
--运算符和表达式3
-PHP语法基础--PHP的运算符和表达式
-条件判断语句
--条件判断语句1
--条件判断语句2
--条件判断语句3
--条件语句
-循环控制语句
--循环控制语句
--循环语句练习1
--循环语句练习2
-跳转语句和终止语句
--跳转和终止语句
-流程控制
-数组概述和分类
--数组概述和分类
--PHP数组分类
-数组创建、删除和修改
--数组创建
-数组遍历
--数组遍历1
--数组遍历2
--数组遍历3
--数组遍历4
--数组遍历5
--foreach
-数组相关函数
--数组相关函数1
--数组相关函数2
--数组相关函数3
--数组相关函数4
--数组相关函数5
--数组相关函数6
--数组函数的练习
-PHP数组--作业
-分页函数的应用
-函数的定义与调用
--函数定义与调用
-函数参数传递
--函数参数传递1
--函数参数传递2
-自定义函数总结和实验
-常用变量和数学函数
--变量和数学函数库
--数学函数实验
--数学函数
-日期和时间函数
--日期时间函数1
--时间日期函数2
--倒计时
-PHP函数--作业
-字符串概述
--字符串特点
--字符串处理方式
-常见的字符串函数
--常见字符串函数1
--输出函数1
--输出函数2
--输出函数3
--去除空白函数1
--去除空白函数2
--去除空白函数3
--其他字符串函数1
--其他字符串函数2
--字符串函数实验1
--字符串函数实验2
--字符串函数实验3
--字符串函数实验4
--字符串练习1
--字符串练习2
--字符串练习3
--字符串练习4
--字符串练习5
--字符串函数
-正则表达式
--正则表达式练习
--正则表达式
-字符串函数--作业
-文件概述和操作
--文件概述和操作1
--文件概述和操作2
-文件的上传和下载
--文件上传1
--文件上传2
--文件上传3
--文件下载
-图像基础
--图像基础1
--图像基础2
-图像基本操作
--图像基本操作1
--图像基本操作2
--图像基本操作3
--图像基本操作4
--图像基本操作5
--图像基本操作6
--表单与验证码的结合
--图像技术练习1
--图像技术练习2
--图像技术练习3
--缩略图
-PHP文件与图像技术-作业
-变色验证码
-会话表单
--会话表单概述1
--会话表单概述2
--会话表单概述3
--超全局变量1
--超全局变量2
--超全局变量3
--表单安全验证
--获取表单数据
-cookie概述
--COOKIE简介
--COOKIE
-session概述
--基本应用1
--基本应用2
-会话管理-作业
-会话管理
-MySQL和PHPMyadmin概述
--MySQL概述1
--MySQL概述2
-PHP访问MySQL
--连接服务器
--选择数据库
--浏览表内容1
--浏览表内容2
--使用mysqli扩展添加数据到数据库中
--使用mysqli扩展删除数据库中数据
--使用mysqli扩展修改数据库中数据
-MySQL扩展的使用
--添加数据页面1
--添加数据页面2
--删除页面1
--删除页面2
--删除页面3
--数据修改页面1
--数据修改页面2
--数据修改页面3