第十三章正则表达式.pptVIP

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第十三章正则表达式

Logo Logo Logo Logo Logo Logo Logo Logo Logo Logo Logo 正则表达式 正则表达式是什么 正则表达式是一种描述字符串结构的语法规则,是一个特定的格式化模式。它可以匹配、替换、截取匹配的字串。对于用户来说,可能以前接触过DOS,如果想匹配当前文件夹下所有的文本文件,可以输入“dir *.txt”命令,按Enter键后,所有“.txt”文件将会被列出来。这里的“*.txt”就可以理解为一个简单的正则表达式。 正则表达式常用术语 grep:最初是ED编辑器中的一条命令,用来显示文件中特定的内容。后来成为一个独立的工具grep。 egrep:grep虽然不断地更新升级,但仍然无法跟上技术的脚步。为此,贝尔实验室写出了egrep,意为“扩展的grep”。这大大增强了正则表达式的能力。 POSIX(Portable Operating System Interface of UNIX):可移植操作系统接口。在grep发展的同时,其他一些开发人员也根据自己的喜好开发出了具有独特风格的版本。但问题也随之而来。有的程序支持某个元字符,而有的程序则不支持。因此,就有了POSIX。POSIX是一系列标准,确保了操作系统之间的移植性。不过POSIX和SQL一样,没有成为最终的标准而只能作为一个参考。 Perl(Practical?Extraction?and?Reporting?Language):实际抽取与汇报语言。1987年,Larry?Wall发布了Perl。在随后的7年时间里,从Perl1到现在的Perl5,最终成为了POSIX之后的另一个标准。 PCRE:Perl的成功,让其他的开发人员在某种程度上要兼容“Perl”,包括C/C++、Java、Python等都有自己的正则表达式。1997年,Philip Hazel开发了PCRE库,这是兼容Perl正则表达式的一套正则引擎,其他开发人员可以将PCRE整合到自己的语言中,为用户提供丰富的正则功能。许多软件都使用PCRE,PHP正是其中的一员。 正则表达式语法规则 行定位符用于描述字串的边界。“^”表示行的开始;“$”表示行的结尾。例如: ^mr 该表达式表示要匹配字串mr的开始位置是行头,如“mrsoft”、“Mr book”都可以匹配,而“Tomorrow mr”则不能匹配。如果要匹配“Tomorrow mr”,则可以使用下面的行结尾定位符“$”。 mr$ 这可以匹配以mr结尾的字符,而不能匹配以mr开头的字符,如果要匹配的字串可以出现在字符串的任意部分,那么可以直接写成: mr 这样两个字符串就都可以匹配。 行定位符(^和$) 正则表达式语法规则 正则表达式是区分大小写的,如果想要忽略大小写,可以通过方括号表达式“[]”来完成。只要匹配的字符出现在方括号内,即表示匹配成功。但需要注意的是,一个方括号只能匹配一个字符。例如,要匹配字串“mr”不区分大小写,其表达式的格式如下。 [Mm][Rr] 这样,就可以匹配字串“mr”的所有写法。POSIX和PCRE都使用了一些预定义字符类,但表示方法略有不同。POSIX风格的预定义字符类如表所示。 字符类([]) 正则表达式语法规则 要忽略字串的大小写,还可以通过选择字符“|”来完成。该字符可以理解为“或”,如上例也可以写成: (M|m)(R|r) 该表达式的意思是以字母M或m开头,后面接一个字母R或r。 选择字符(|) 变量的命名规则是只能以字母和下划线开头。如果要使用正则表达式来匹配变量名的第一个字母,难道要写成如下格式: [a,b,c,d…A,B,C,D…_] 不用担心,正则表达式提供了连字符“-”来解决这个问题。连字符可以表示字符的范围。如上例可以写成: [a-zA-Z_] 连字符(-) 正则表达式语法规则 上面的例子是匹配符合命名规则的变量。反过来,匹配不符合命名规则的变量。这时该怎么做呢?正则表达式提供了“^”字符。这里将其放到方括号中,则表示排除的意思。例如: [^a-zA-Z_] 该表达式匹配的是不以字母和下划线开头的变量名。 排除字符([^]) 正则表达式语法规则 经常使用google的用户可能会发现,在搜索结果页的下方,“google”中间字母“o”的个数会随着搜索页的改变而变化。那么要匹配该字串的正则表达式该如何实现呢? 对于这类重复出现的字母或字串,可以使用限定符来实现匹配。限定符主要有6种,如表所示。 限定符(? * + {n,m}) 通过对google应用的观察发现,当搜索结果只有一页时,不显示google标志;只有大于等于2时,才显示google。这说明字母“o”最少为两个,

文档评论(0)

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

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

1亿VIP精品文档

相关文档