循路觅宗师,形影不相离,师知吾亦知,吾乃成宗师。

BIBLE模型

发掘积累过程的快感

首页»BIBLE模型 Perfect»计算机基础»编程基础»第五节:正则表达式元字符(三)

正则表达式可选元素

现在来看color和colour的例子,这两个单词只有“u”的差别,到这一章节,我们可以使用元字符?,所以匹配这一实力的正则表达式是:    /colou?r/。元字符?代表可选项。把它加在字符后面就表示此处容许出现这个字符,不过它的出现不作为匹配成功的必要条件。

优雅的正则表达式

何为优雅的正则,请看这个例子。我需要匹配表示7月4日(July fourth)的文本,其中月份可能写作“July”或是“Jul”,而日期可能写作“fourth”、"4th"或是"4"。    如果不了解正则表达式的可选元素,我们可能是这样写的正则表达式/(july|jul)\s(fourth|4th|4)/
   现在,看我做一些小的变化:

  • 首先,把/(july|jul)/缩短为/july?/,这样的变化是等价的。现在做这个变化,括号也可以省略了,我们将得到这样的正则表达式        /july?\s(fourth|4th|4)/
  • 现在来看第二部分,把/4th|4/简化为/4(th)?/,这个时候元字符“?”的作用元素则是整个括号范围。括号内的表达式可以        任意复杂,但从括号外看就是一个整体。界定”?“的作用对象是括号的主要用途之一。
  • 现在我们的表达式成了这样/july?\s(fourth|4(th)?)/,尽管包含了许多元字符,而且还有嵌套,但理解并不困难。

正则表达式-量词

在正则表达式中,有需要匹配固定次数的时候,需要量词。”+“(加号)和”*“(星号)的作用类似于问号。

元字符”+“表示”之前紧邻的元素出现一次或多次“;
   元字符”*“表示之前紧邻的元素出现任意多次,或者不出现。换一种说法就是,”*“匹配尽可能多的次数,如果实在无法匹配也是可以的。

问号、加号、星号这3个元字符,统称为量词,它限定了所有元素的重复次数。

规定重复次数的范围:区间

某些版本的egrep能够使用元字符序列来定义重现次数的区间:/.{min,max}/。这称为”区间量词“。 例如:/.{3,5}/能匹配3到5个任意字符。

猜你喜欢
墨西哥街头乐队;墨西哥瓜纳华托州圣米格尔德阿连德市
互联网信息太多太杂,各互联网公司不断推送娱乐花边新闻,SNS,微博不断转移我们的注意力。但是,我们的时间和精力却是有限的。这里是互联网浩瀚的海洋中的一座宁静与美丽的小岛,供开发者歇息与静心潜心修炼。 “Bible”是圣经,有权威的书,我们的本意就是为开发者提供真正有用的的资料。 我的电子邮件1217179982@qq.com,您在开发过程中遇到任何问题,欢迎与我联系。
Copyright © 2017. All rights reserved. 本站由 Helay 纯手工打造