正则表达式之可选项元素?

现在来匹配color和colour,这两个单词都可以表示颜色的意思,他们的区别在于前面的单词比后面的单词多出一个u,那怎么通过一个正则匹配出这两个单词呢?代码如下:

var str="color";
alert(str.match(/colou?r/)); //输出:color
str="colour";
alert(str.match(/colou?r/)); //输出:colour

"?"元字符和之前介绍的元字符都不同,他只作用于之前紧邻他的元字符,因此来解读上面的正则colou?r的意思是:先是c,然后是o,然后是l,然后是o,然后是u?,紧接着是r;

u?是必然匹配成功的,有时他会匹配一个u,有时则不匹配任何字符,关键在于,无论u是否出现,匹配都是成功的;

下面来看一个例题:需要匹配7月6日的文本(July Sixth)的文本,其中月份可能写作Jul或者July,日期可能写成Sixth、6th、6。下面上代码:

第一种方法:

var str="July 6th";
alert(str.match(/^(July|Jul).(sixth|6th|6)/)); //输出:July 6th

第二种方法:

var str="July 6th";
alert(str.match(/^July?.(sixth|6(th)?)/)); //输出:July 6th

显然第二种方法更加的简洁!而且第二种方法?和()括号的结合,使得可以匹配的范围无限增大了,因为括号里面的表达式可以任意复杂。

时间: 2024-10-10 13:47:36

正则表达式之可选项元素?的相关文章

Delphi 正则表达式语法(10): 选项

Delphi 正则表达式语法(10): 选项 // preCaseLess: 不区分大小写, 相当于其他语言中的 i var   reg: TPerlRegEx; begin   reg := TPerlRegEx.Create(nil);   reg.Subject := 'abc ABC aBc';   reg.RegEx  := 'abc';   reg.Replacement := '◆';   reg.Options := [preCaseLess]; //选项是集合类型的   reg

可选项元素?

假如需要匹配color和colour,两个单词的区别是后面的比前面的单词多了一个u,可以用「colou?r」来进行匹配. 元字符「?」代表可选项,也就是这个u可以出现,也可以不出现.在元字符「?」前一个的字符不是匹配成功的必要条件 特点:没有次数下限,可以不出现,次数上限是一次,最多可以出现一次 原文地址:https://www.cnblogs.com/lyd447113735/p/8634768.html

浅析grep工具相关选项及正则表达式

grep是linux下一个重要的文本处理工具之一,全称是Globel Search Regular Expression and Printing out the line(全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,是一个对行进行操作的搜索工作,它能使用正则表达式搜索文本,并把匹配的行打印出来. grep家族包括grep.egrep和fgrep. egrep表示扩展的grep,相比grep支持更多的元字符,"grep -E"相当于egrep.fgrep是fast gr

C# 正则表达式 转自-每日一bo

最近写爬虫时需要用到正则表达式,有段时间没有使用正则表达式现在渐渐感觉有些淡忘,现在使用还需要去查询一些资料.为了避免以后这样的情况,在此记录下正则表达式的一些基本使用方法附带小的实例.让以后在使用时能一目了然知道他的使用,为开发节约时间,同时也分享给大家. 正则元字符 在说正则表达式之前我们先来看看通配符,我想通配符大家都用过.通配符主要有星号(*)和问号(?),用来模糊搜索文件.winodws中我们常会使用搜索来查找一些文件.如:*.jpg,XXX.docx的方式,来快速查找文件.其实正则表

[正则表达式]基础知识总结

一直只是知道正则表达式的用途,但具体没使用过,今天稍微了解了下它的基础用法.这里总结一下. 命令空间:System.Text.RegularExpressions 用途: 对字符串进行查找和替换: 识别重复的单词: 转换格式: 区分一个字符串的各个子元素,并进行提取. RegEx类: 是对正则表达式引擎的类抽象,通过调用该抽象类的不同方法,实现对正则表达式的处理. 该类的主要方法如下所示,具体用途相信通过方法名即可知道: 了解完Regex类的主要方法后,还需要关注三个比较重要的类和它们的层次,分

正则表达式基础、原理及优化

前言 正则表达式使用单个字符串来描述.匹配一系列匹配某个句法规则的字符串.在很多文本编辑器里,正则表达式通常被用来检索.替换那些匹配某个模式的文本.简单说就是一个特殊的字符串去匹配一个字符串.定义了一些规则,用于匹配满足这些规则的字符串. 对于正则表达式应该很多人第一感觉就是很难,完全没有规律,看不懂. 我觉得可能有以下几个原因: 1.读不懂. 各种不同的字符组合一起,难以理解.确实,对于熟悉正则表达式的人来说,一个稍微长点的正则表达式想要理解起来,可能也要花费一定的功夫.可读性差是正则表达式的

JS正则表达式大全(整理详细且实用)

JS正则表达式大全(整理详细且实用).需要的朋友可以过来参考下,希望对大家有所帮助!! 正则表达式中的特殊字符 字符 含意 \ 做为转意,即通常在"\"后面的字符不按原来意义解释,如/b/匹配字符"b",当b前面加了反斜杆后/\b/,转意为匹配一个单词的边界. -或- 对正则表达式功能字符的还原,如"*"匹配它前面元字符0次或多次,/a*/将匹配a,aa,aaa,加了"\"后,/a\*/将只匹配"a*".

正则表达式30分钟入门教程

目录 跳过目录 本文目标 如何使用本教程 正则表达式到底是什么东西? 入门 测试正则表达式 元字符 字符转义 重复 字符类 分枝条件 反义 分组 后向引用 零宽断言 负向零宽断言 注释 贪婪与懒惰 处理选项 平衡组/递归匹配 还有些什么东西没提到 联系作者 网上的资源及本文参考文献 更新纪录 本文目标 30分钟内让你明白正则表达式是什么,并对它有一些基本的了解,让你可以在自己的程序或网页里使用它. 如何使用本教程 最重要的是--请给我30分钟,如果你没有使用正则表达式的经验,请不要试图在30秒内

【转】正则表达式30分钟入门教程

首页 | 常用正则表达式 | 正则表达式测试工具 正则表达式30分钟入门教程 版本:v2.33 (2013-1-10) 作者:deerchao 转载请注明来源 目录 跳过目录 本文目标 如何使用本教程 正则表达式到底是什么东西? 入门 测试正则表达式 元字符 字符转义 重复 字符类 分枝条件 反义 分组 后向引用 零宽断言 负向零宽断言 注释 贪婪与懒惰 处理选项 平衡组/递归匹配 还有些什么东西没提到 联系作者 网上的资源及本文参考文献 更新纪录 本文目标 30分钟内让你明白正则表达式是什么,