第10章正则表达式.pptxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第10章正则表达式;10.1 正则表达式简介;正则表达式简介: 正则表达式是用于描述字符排列和匹配模式的一种语法规则。它主要用于字符串的模式分割、匹配、查找及替换操作。到目前为止,我们前面所用过的精确(文本)匹配也是一种正则表达式。 在PHP中,正则表达式一般是由正规字符和一些特殊字符(类似于通配符)联合构成的一个文本模式的程序性描述。 PHP中,正则表达式有三个作用: 匹配,也常常用于从字符串中析取信息。 用新文本代替匹配文本。 将一个字符串拆分为一组更小的信息块。 一个正则表达式中至少包含一个原子。;在PHP中有两套正则表达式函数库,两者功能相似,只是执行效率略有差异: 一套是由PCRE(Perl Compatible Regular Expression)库提供的。使用“preg_”为前缀命名的函数; 一套由POSIX(Portable Operating System Interface of Unix )扩展提供的。使用以“ereg_”为前缀命名的函数; PCRE来源于Perl语言,而Perl是对字符串操作功能最强大的语言之一,PHP的最初版本就是由Perl开发的产品。 PCRE语法支持更多特性,比POSIX语法更强大。 举例:想一想这两个正则表达式做什么用? /^-?\d+$|^-?0[xX][\da-fA-F]+$/ /^[0-9a-zA-Z_-]+@[0-9a-zA-Z_-]+(\.[0-9a-zA-Z_-]+){0,3}$/;10.2.1 定界符;在程序语言中,使用与Perl兼容的正则表达式,通常都需要将模式表达式放入定界符之间,如“/”。 作为定界符常使用反斜线“/”,如“/apple/”。用户只要把需要匹配的模式内容放入定界符之间即可。作为定界的字符也不仅仅局限于“/”。除了字母、数字和斜线“\”以外的任何字符都可以作为定界符,像 ‘#’、’|’、’!’ 等都可以的。 /\/\w+/ --使用反斜线作为定界符合法 |(\d{3})-\d+|Sm --使用竖线”|”作为定界符合法 !^(?i)php[34]! --使用竖线”!”作为定界符合法 {^\s+(\s+)?$} --使用竖线”}”作为定界符合法 /href=‘(.*)’ --非法定界符,缺少结束定界符 1-\d3-\d3-\d4| --非法定界符,缺少其实定界符;原子是正则表达式的最基本的组成单元,而且在每个模式中最少要少包含一个原子。原子是由所有那些未显示指定为元字符的打印和非打印字符组成,具体分为5类??? 1. 普通字符作为原子: 如 a~z、A~Z、0~9 等 2. 一些特殊字符和转义后元字符作为原子: 所有标点符号,但语句特殊意义的符号需要转义后才可作为原子,如:\” \’ \* \+ \? \. 等 3. 一些非打印字符作为原子: 如:\f \n \r \t \v \cx 4. 使用“通用字符类型”作为原子:如:\d \D \w \W \s \S。 5. 自定义原子表([])作为原子:如:’/[apj]sp/’ ’/[^apj]sp/’;;;;正则表达式中有一些用于重复匹配某些原子的元字符:“?”、“*”、“+”。他们主要的区别是重复匹配的次数不同。 元字符“?”:表示0次或1次匹配紧接在其前的原子。 例如:/colou?r/匹配“colour”或“color”。 元字符“*”:表示0次、1次或多次匹配紧接在其前的原子。 例如:/zo*/可以匹配z、zoo 元字符“+”:表示1次或多次匹配紧接在其前的原子。 例如:/go+gle/匹配“gogle”、“google”或“gooogle”等中间含有多个o的字符串。;元字符“{ }”准确地指定原子重复的次数,指定所匹配的原子出现的次数。 “{m}” 表示其前原子恰好出现m次。 “{m,n}”表示其前原子至少出现m次,至多出现n次。 “{m,}” 表示其前原子出现不少于m次。 例如: /zo{1,3}m/ 只能匹配字符串“zom”、“zoom”、或“zooom”。 /zo{3}m/ 只能匹配字符串“zooom”。 /zo{3,}m/ 可以匹配以 “z” 开头,“m”结束,中间至少为3个“o”的字符串。 /bo{0,1}u/ 可以匹配字符串“bought a butter” 中的“bou”和“bu”,等价于bo?u。;原子表”[]”中存放一组原子,彼此地位平等,且仅匹配其中的一个原子。如果想匹配一个 ”a” 或 ”e” 使用 [ae]。 例如: Pr[ae]y 匹配 ”Pray” 或者 ”Prey ”。 原子表 ”[^]” 或者称为排除原子表,匹配除表内原子外的任意一个字符。 例如:/p[^u]/匹配“part”中的“pa”,但无法匹配“c

文档评论(0)

jyr0221 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档