你全力做到最好,可能还不如别人随便搞搞!

发掘积累过程的快感

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

第五节:正则表达式元字符(三)


正则表达式可选元素

现在来看 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 © 2024. All rights reserved. 本站由 Helay 纯手工打造. 蜀ICP备15017444号