PHP正则表达式教案(精品).ppt
《PHP正则表达式教案(精品).ppt》由会员分享,可在线阅读,更多相关《PHP正则表达式教案(精品).ppt(35页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、PHP正则表达式(选学内容)正则表达式正则表达式基本概念基本概念正则表达式语法规则正则表达式语法规则PCRE (Perl)兼容正则表达式函数兼容正则表达式函数POSIX 扩展正则表达式函数扩展正则表达式函数 正则表达式简介正则表达式简介正则表达式是用于描述字符排列和匹配模式的一种语正则表达式是用于描述字符排列和匹配模式的一种语法规则。它主要用于字符串的模式分割、匹配、查找法规则。它主要用于字符串的模式分割、匹配、查找及替换操作。及替换操作。到目前为止,我们前面所用过的精确(文本)匹配也是一种正则表达式。在PHP中,正则表达式一般是由正规字符和一些特殊字符(类似于通配符)联合构成的一个文本模式的
2、程序性描述。正则表达式简介正则表达式简介在PHP中有两套正则表达式函数库,两者功能相似,只是执行效率略有差异:一套是由PCRE(Perl Compatible Regular Expression)库提供的。使用“preg_”为前缀命名的函数;一套由POSIX(Portable Operating System Interface of Unix)扩展提供的。使用以“ereg_”为前缀命名的函数;使用正则表达式的原因之一,是在典型的搜索和替换操作中,只能对确切文字进行匹配,对象动态文本的搜索就有困难了,甚至是不可能的。举例:想一想这两个正则表达式做什么用?/-?d+$|-?0 xXda-fA-
3、F+$/0-9a-zA-Z_-+0-9a-zA-Z_-+(.0-9a-zA-Z_-+)0,3$/正则表达式较重要和较有用的角色是验证用户数据的有效性检查。PHP中,正则表达式有三个作用:匹配,也常常用于从字符串中析取信息。用新文本代替匹配文本。将一个字符串拆分为一组更小的信息块。PCRE正则表达式PCRE全称为Perl Compatible Regular Expression,意思是Perl兼容正则表达式。PCRE来源于Perl语言,而Perl是对字符串操作功能最强大的语言之一,PHP的最初版本就是由Perl开发的产品。PCRE语法支持更多特性,比POSIX语法更强大,实现相同的功能函数,使
4、用PCRE库的效率略占优势。但是它们也有很多相同点。在PCRE中,通常将模式表达式(即正则表达式)包含在两个包含在两个反斜线反斜线“/”之间,如之间,如“/apple/”。用户只要把需要匹配的模式内容放入定界之间即可。作为定界的字符也不仅仅局限于“/”。除了字母、数字和斜线“”以外的任何字符都可以作为定界符,像“#”、“/”、“!”等都可以的。正则表达式的语法规则正则表达式主要组成:原子(普通字符,如英文字符)元字符(有特殊功用的字符)模式修正字符(对正则表达式语义的修正)一个正则表达式中至少包含一个原子。原子(Atom)原子是组成正则表达式的基本单位,在分析正则表达式时,应作为一个整体。原子
5、字符包括所有的英文字母、数字、标点符号以及其他一些符号。原子也包括以下内容。单个字符、数字,如az,AZ,09。模式单元,如(ABC)可以理解为由多个原子组成的大的原子。原子表,如 ABC。重新使用的模式单元,如:1普通转义字符,如:d,D,w转义元字符,如:*,.普通转义字符 原子说明-d匹配一个数字;等价于0-9D匹配除数字以外任何一个字符;等价于0-9w匹配一个英文字母、数字或下划线;等价于0-9a-zA-Z_W匹配除英文字母、数字和下划线以外任何一个字符;等价于0-9a-zA-Z_s匹配一个空白字符;等价于fnrtvS匹配除空白字符以外任何一个字符;等价于fnrtvf匹配一个换页符等价
6、于 x0c 或 cLn匹配一个换行符;等价于 x0a 或 cJr匹配一个回车符等价于x0d 或 cMt匹配一个制表符;等价于 x09或clv匹配一个垂直制表符;等价于x0b或ckoNN匹配一个八进制数字xNN匹配一个十六进制数字cC匹配一个控制字符元字符元字符(Meta-character)元字符是用于构造规则表达式的具有特殊含义的字符。如果要在正则表达式中包含元字符本身,必须在其前加上”进行转义 元字符元字符说明说明*0次、1次或多次匹配其前的原子+1次或多次匹配其前的原子?0次或1次匹配其前的原子|匹配两个或多个选择 或 A匹配字符串串首的原子$或 Z 匹配字符串串尾的原子b匹配单词的边界
7、B匹配除单词边界以外的部分匹配方括号中的任一原子匹配除方括号中的原子外的任何字符m表示其前原子恰好出现m次m,n表示其前原子至少出现m次,至少出现n次(nm)m,表示其前原子出现不少于m次()整体表示一个原子.匹配除换行之外的任何一个字符字符串边界限制在某些情况下,需要对匹配范围进行限定,以获得更准确的匹配结果。“”和“$”分别指定字符串的开始和结束。例如,在字符串“Tom and Jerry chased each other in the house until toms uncel come in”中元字符元字符“”或或“A”置于字符串的开始确保模式匹配出现在字符串首端;/Tom/元字符
8、元字符“$”或或“Z”置于字符串的结束,确保模式匹配出现字符串尾端。/in$/如果不加边界限制元字符,将获得更多的匹配结果。/Tom$/精确匹配/Tom/模糊匹配单词边界限制在使用各种编辑软件的查找功能时,可以通过选择“按单词查找”获得更准确的结果。正则表达式中也提供类似的功能。例如:在字符串“This island is a beautiful land”中元字符元字符“b”对单词的边界进行匹配;/bisb/匹配单词“is”,不匹配“This”和“island”。/bis/匹配单词“is”和“island”中的“is”,不匹配“This”元字符元字符“B”对除单词边界以外的部分进行匹配。/B
9、isB/将明确的指示不与单词的左、右边界匹配,只匹配单词 的内部。所以在这个例子中没有结果。/Bis/匹配单词“This”中的“is”重复匹配正则表达式中有一些用于重复匹配某些原子的元字符:“?”、“*”、“+”。他们主要的区别是重复匹配的次数不同。元字符元字符“?”:表示0次或1次匹配紧接在其前的原子。例如:/colou?r/匹配“colour”或“color”。元字符元字符“*”:表示0次、1次或多次匹配紧接在其前的原子。例如:/zo*/可以匹配z、zoo元字符元字符“+”:表示1次或多次匹配紧接在其前的原子。例如:/go+gle/匹配“gogle”、“google”或“gooogle”等
10、中间含有多个o的字符串。任何一个字符元字符元字符“.”匹配除换行符外任何一个字符,相当于n(Unix系统)或rn(windows系统)。例如:/pr.y/可以匹配的字符串“prey”、“pray”或“pr%y”等。通常可以使用“.*”组合来匹配除换行符外的任何字符。在一些书籍中也称其为“全匹配符”或“单含匹配符”。例如:/a.*z$/表示可以匹配字母“a”开头,字母“z”结束的任意不包括换行符的字符串。/.+/也可以完成类似的匹配功能所不同的是其至少匹配一个字符。/a.+z$/匹配“az”不匹配字符串“az”。重复匹配元字符元字符“”准确地指定原子重复的次数,指定所匹配的原子出现的次数。“m”
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- PHP 正则 表达式 教案 精品
限制150内