前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布

Regular

作者头像
ZHaos
发布2019-02-27 16:25:51
4270
发布2019-02-27 16:25:51
举报
文章被收录于专栏:学习之旅

原因:2018年3月9日 笔记 说明:读书笔记

1.1 两种模糊匹配

1.1.1 横向模糊匹配

  • 一个正则可匹配的字符串的长度不是固定的
  • 比如正则 /ab{2,5}c/ 表示匹配这样一个字符串:第一个字符是 “a”,接下来是 2 到 5 个字符 “b”,最后 是字符 “c”。

1.1.2 纵向模糊匹配

  • 一个正则匹配的字符串,具体到某一位字符时,它可以不是某个确定的字符,可以有多种 可能。
  • 比如 /a[123]b/ 可以匹配如下三种字符串: “a1b”、”a2b”、”a3b”。

1.2 字符组

1.2.1 范围表示法

  • 当字符组里的字符特别多,可用”-“进行连接,比如 [123456abcdefGHIJKLM],可以写成 [1-6a-fG-M]。用连字符 - 来省略和简写。
  • 要匹配 “a”、”-“、”z” 这三者中任意一个字符,可以写成如下的方式:[-az] 或 [az-] 或 [a-z]。

1.2.2 排除字符组

  • 纵向模糊匹配还有一种情况,某位字符可以是任何东西,但就不能是 “a”、”b”、”c”。
  • 此时就可以使用排除字符组[^abc]来表示,该符号为脱字符

1.2.3 常见的简写形式

字符组

字符含义

\d

[0-9]

\D

[^0-9]

\w

[0-9a-zA-Z_] 数字、字母、下划线

\W

[^0-9a-zA-Z_] 非单词词组

\s

[\t\v\n\r\f] 空白符

\S

[^\t\v\n\r\f] 非空白符

.

通配符

  • 使用 [\d\D]、[\w\W]、[\s\S] 和 [^] 中任何的一个可表示匹配任意字符

1.3 量词

1.3.1 简写形式

量词

具体形式

{m,}

至少出现m次

{m}

出现m次

?

等价于{0,1} 表示出现或者不出现

+

等价于{1,} 表示至少出现一次

*

等价于{0,} 表示出现任意次

1.3.2 贪婪匹配与惰性匹配

  • 贪婪匹配,尽可能多的匹配 /\d{2,5}/g
  • 惰性匹配,尽可能少的匹配 /\d{2,5}?/g

1.4 多选分支

  • 一个模式可以实现横向和纵向模糊匹配。而多选分支可以支持多个子模式任选其一。
  • 多选分支是惰性的,当前面匹配时,后面的就不会尝试了。
代码语言:javascript
复制
var regex = /goodbye|good/g; var string = "goodbye";
console.log( string.match(regex) );
// => ["goodbye"]

1.5 案例分析

1.5.1 匹配16进制颜色

  • 要求匹配#ffbbad #Fc01DF #FFF #ffE
代码语言:javascript
复制
var regex = /#([0-9a-fA-F]{6}|[0-9a-fA-F]{3})/g;
var string = "#ffbbad #Fc01DF #FFF #ffE";
console.log( string.match(regex) );
// => ["#ffbbad", "#Fc01DF", "#FFF", "#ffE"]

1.5.2 匹配时间

  • 要求匹配时间
代码语言:javascript
复制
var regex = /^([01][0-9]|[2][0-3]):[0-5][0-9]$/;
console.log( regex.test("23:59") );
console.log( regex.test("02:07") );
// => true // => true

1.5.3 匹配日期

  • 匹配yyyy-mm-dd
代码语言:javascript
复制
var regex = /^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$/; 
console.log( regex.test("2017-06-10") );
// => true
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-03-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档