正则

作者: 布丁点com | 来源:发表于2019-04-02 17:12 被阅读0次

1️⃣横向模糊匹配

横向模糊匹配指的是,一个正则可匹配的字符串的长度不是固定的,可以是多种情况。

其实现的方式是使用量词。如{m,n},表示连续出现最少m次,最多n次。

如/ab{2, 5}c/表示匹配这样一个字符串:第一个字符是“a”,接下来是2到5个字符“b”,最后是字符“c”。

图1

注意:上面用的正则是/ab{2,5}c/g,后面多了g,它是正则的一个修饰符。表示全局匹配,即在目标字符串中按照顺序找到匹配模式的所有子串,强调的是“所有”,而不只是“第一个”。g是单词global的首字母。

2️⃣纵向模糊匹配

总想模糊匹配指的是,一个正则匹配的字符串,具体到某一位字符时,它可以不是某个确定的字符,可以有多种可能。

其实现的方式是使用字符组。如[abc],表示该字符是可以字符“a”,“b”,“c”中的任何一个。

比如/a[123]b/可以匹配如下三种字符串:“a1b”、“a2b”、“a3b”。如下:

图2

3️⃣范围表示法

比如[123456abcdefGHIJKLM],可以写成[1-6a-fG-M]。用连字符-来省略和简写。

4️⃣排除字符组

纵向模糊匹配,还有一种情形是,某位字符可以是任何东西,但不能是“a”,“b”,“c”。

此时就是排除字符组(反义字符组)的概念。

如[^abc],表示的是一个除“a”,“b”,“c之外的任意一个字符”。字符组的第一位放^(脱字符),表示求反的概念。

5️⃣常见的简写样式

\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]。非空白符。

. 是[^\n\r\u2028\u2029]。通配符,表示几乎任意字符。换行符、回车符、行分隔符和段分隔符除外。

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

6️⃣量词简写

{m,} 表示至少出现m次。

{m} 等价于 {m, m}, 表示出现m次。

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

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

* 等价于{0,},表示出现任意次,有可能不出现。

7️⃣多选分支

一个模式可以实现横向和纵向模糊匹配。而多选分支可以支持多个子模式任选其一。

具体形式如下:(p1|p2|p3),其中p1,p2和p3是子模式,用 |(管道符)分隔,表示其中任何之一。

正则表达式位置匹配

^和$

图3

\b和\B

\b是单词边界,具体就是\w和\W之间的位置,也包括\w和^之间的位置,也包括\w和$之间的位置。

(?=p)和(?!p)

(?=p),其中p是一个子模式,即p前面的位置。

比如(?=l),表示“l”字符前面的位置。

图4

而(?!p)就是(?=p)的反面意思,比如:

案例:

①数字的千分分隔符表示法

图5

②验证密码问题

密码长度6-12位,由数字、小写字符和大写字母组成,但必须至少包括2种字符。

var reg = /((?=.*[0-9])(?=.*[a-z])|(?=.*[0-9])(?=.*[A-Z])|(?=.*[a-z])(?=.*[A-Z]))^[0-9A-Za-z]{6,12}$/;

相关文章

  • java正则使用

    正则切割 正则捕获 正则完全匹配

  • regexp 正则包

    正则对象 正则使用都是通过创建对应的正则对象,调用对象方法所实现。 新建正则对象 正则对象属性方法 正则方法 一般...

  • 个人书画作品之四

    写楷心得 字正则心正,心正则人正,人正则德正,德正则身正, 身正则形正,形正则意正, 意正则气正,一气化三清。 ...

  • 第七天正则表达式

    正则表达式的理念: 正则的使用方法: 正则里string两个方法: 使用正则找字母的几种写法: 正则的转义: 正则...

  • 心正笔正

    心正则意正!心正则身正! 心正则言正!心正则行正! 心正则笔正!心正则字正! 心正则并勤!勤尽则字成! 心清则目明...

  • git一次删除多个文件

    正则 非正则

  • day17-正则表达式

    正则表达式符号含义 通配符与正则区别? 正则表达式中注意事项 正则表达式分类: 基本正则(BRE) ※ 扩展正则表...

  • Js正则匹配常用案例

    1 用户名正则 2 密码强度正则 3 整数正则 4 数字正则 5 Email正则 6 手机号码正则 7 身份证号正...

  • 前端表单验证常用的15个JS正则表达式

    1.用户名正则 2 密码强度正则 3 整数正则 4 数字正则 5 Email正则 6 手机号码正则 7 身份证号正...

  • 2019-06-15 JS

    email正则, url正则

网友评论

      本文标题:正则

      本文链接:https://www.haomeiwen.com/subject/awdcbqtx.html