PHP正则表达式二徐枭雄课堂笔记
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
正则表达式
1.什么是正则表达式
a)例子:’//’;这就是正则表达
式
b)乱七八糟的一堆字符堆砌在一起,神秘的符号,有着
奇特的意义
2.和正则表达式相识的事物?
a)乱/看不懂/神秘/意义
医生的字只有医院的人能看懂
道士的符只有道士明白
女人的心只有女人能懂
正则表达式只有程序员能看懂(所有的高级语言中都有正则表达式)
3.学习正则表达式可以做什么、
a)操作字符串时正则表达式的唯一作用
验证用户名长度是否合法
验证密码是否符合标准
验证手机号
验证URL地址
验证邮箱
BBS编辑器
Qq聊天表情
新闻采集器小偷程序
4.看看正则表达式的一些特点
a)1.正则表达式也是一个字符串
b)2.由特殊意义的字符组成的字符串
c) 3.具有一定的编写规则,也是一种模式
d)4.看做是一种编程语言
因为是用一些特殊字,按照规则编写出来的字符串,形成一种模式-正则表达式。
注意:如果正则表达式,不和函数一起使用,则他就是一个普通的字符串而已。如果把正则表达式放入到函数中一起使用,才能发挥出正则表达式的作用。
比如:将正则表达式放入到分分隔函数,哪可以用这个正则表达式去分隔字符串。
总结:正则弊端是就是通过构建具有特定规则的模式了,在于输入的字符串信息进行比较,分隔,查找,替换等工作。
在实际应用中记住一点:能使用字符串处理函数来完成的就不要使用正则表达式来完成。愿意:效率低。
5.PHP中提供了两套正则表达式函数库
a)Posix 扩展正则表达式函数-》ereg
b)Perl 兼容正则表达式函数->preg
(两套函数库功能一样,但是perl效率高,所以官方推荐使用perl)
6.学习正则表达式时,有两方面学习
a)1.正则表达式的模式如何编写
b)2.学习正则表达式的强大处理函数
7.正则表达式的语法(分4部)
a)1.正则定界符
b)2.正则表达式中的原子
c) 3.正则表达式中的元字符(原子修正符)
d)4.正则表达式的模式修正符
8.正则表达式的定界符
a)正则表达式的定界符是用来声明正则表达式的边界符
号。
正则表达式常用个的边界符是’/‘实际上任何非数字字
符和\之外的字符都可以做正则表达式的边界符
注意:
一个完整的正则表达式有两边界符
1.一个是字符串类型的引号边界符
2.一个是正则表达式的边界符。
9.正则表达式的原子
a)组成正则表达式的最小的单位就是原子
1.原子都有哪些内容组成?
i.所有的可见字符都是原子
ii.大部分不可见字符也是原子:比如:空格\N \R \T 这些转移字符也是原子。
\d 表示数字0-9之间的任意一个数字
\D 表示除了数字以外的任意一个字符
\s 表示所有的空白符中的任意一个字符
包括:\n \r \t 空格等
\S表示除了所有空白符之外的任意一个字符
\w 表示数字大小写字母以及下划线中任意一个字符
\W 表示除了数字大小写字母以及下划线之外的任意
一个字符。
10.正则表达式的元字符(原子修饰符)
[]原子列表
表示在指定的字符选取一个原子
[5-9]表示5,6,7,8,9连接的字符允许缩写为开始字符到结束字符。
排除列表:[^]
[^4]表示除了4之外的所有字符都可以使用
使用原子列表以及排除列表模拟以上的\D\d\S\s\w\W的效果
\d [0-9]
\D [^0-9]
\s [ \n\r\t]
\S [^ \n\r\t]
\w [0-9a-zA-Z_]
\W[^0-9a-zA-Z]
原子数量修饰符
?表示前面的原子出现1次或者0次{0,1}
+ 表示签名的原子出现1次或者多次{1,}
* 表示前面的原子出现0次1次或者多次{0,}
原子数量修饰列表
{m,n}表示前面的原子可以出现从m个到N个
{m,} 表示前面原子最少出现m次
{m}表示前面原子出现m次
字符串边界修饰符(也就是说开始和结束符)
^表示以指定字符开头的内容
$表示以指定字符结尾的内容
^字符串$表示精确匹配某一个字符(多一个少一个都不行)
注意:如果要使用^和$可以匹配每一行的开始和结束部分,需要使用后面学习的模式修正符m
选择修饰符|
模式单元()
1.改变优先级
2.将多个原子视为一个原子,目的是可以使用原子数量修饰符
3.将匹配到的括号中的内容暂时存为内存当中
4.如果使用()仅仅为了模拟一个原子使用原子数量修饰符,可以在括号的开始处使用?:来解除存于内存的作用,提高效率
5.可以将括号的内容在函数的辅助相爱进行反向引用操作。
\d{15}|\d{18}|\d{17}x 身份证
\d+\.\d+\.\d+\.\d+ 1.1.1.1 ip地址
\d{3}-\d{8}|\d{4}-\d{7} 座机号010-********
0123-1234567
[a-zA-Z]+:\/\/[^\s]* 域名
//Aaaaaaaaaaaa://asdhfjkahksjdfhlasldhflkjasdhflasdhljkf
作业:今日讲解正则的原子元字符练习三遍。整理课堂笔记
自己写电话号验证规则
1 3 [0123456789]
1 4 7
1 5 1234567890
1 7 0178
1 8 0 1
2
3
4
5
6
7
8 9
留的在线相册写完。
模式修正符
i 忽略大小写