图解正则——字符匹配

1,613 阅读2分钟

简介

正则表达式是绕不开的,正则的强大是众所周知的,学会它对我们的编程也是有大大的帮助

模糊匹配

正则表达式之所以强大,就要归功于它的模糊匹配,不能可以匹配不同数量的字符串,还可以匹配不同内容的字符串。如果正常只能精确匹配字符串,那正则的效果就没有啥用了比如:/a/就匹配一个a字符。

用于匹配字符串长度的横行匹配

匹配的字符串长度是不固定的,如图所示:

image-20200910170307203

用于匹配字符串多种情况内容的纵向匹配

匹配的字符串的内容是几种情况中的一种,如图所示:

image-20200910170403956

字符组

我们在写正则匹配的时候,在一个位置上,比如一个字符串的某个索引上可能的值有很多个,假设就是abc其中一个字母。那么我们就需要用到字符组,大概的意思就是一组字符中的其中一个。

  • 表示一个位置可能出现的多种情况,正则表示/[abc]/,图解如下:

image-20200910170841308

  • 表示一个范围取值,也是多种情况取其一,正则表示[1-6a-f],图解如下:

image-20200910171154129

在表示范围这里需要注意下,有时我们需要匹配的就只是表示范围的三个值比如:a - f 那我们的正则就不能[a-f] 这样写了,需要像这样写:

[-af]

img

[-fa]

img

[a-f]

  • 排除部分值,也就是说把不要的值写出来,正则[^abc]表示排除abc其中之一,图解如下:

image-20200910172039436

  • 常见的几种简写方式
  1. \d = [0-9]

img

img

  1. \D = [^0-9]

img

img

  1. \w = [0-9a-zA-Z_]

img

img

  1. \W = [^0-9a-zA-Z]

img

img

  1. \s = [\t\v\n\r\f]

img

img

  1. \S = [^\t\v\n\r\f]

img

img

  1. . = [^\n\r\u2028\u2029]

img img

量词

简写形式

  • {m,}至少出现m次,m是一个数量。比如a{9,}表示a至少出现9次,如图

img

  • {m} = {m,m} = 出现m次。比如a{9}表示a出现9次,如图:

img

  • ? = {0,1} = 不出现或出现一次。比如a?表示a不出现或者出现1次,如图:

img

    • = {1,} = 至少出现1次。比如a+表示a至少出现1次,如图:

img

    • = {0,}= 出现任意多次。比如a*表示a出现任意多次,可能很多,也可能一次没出现,如图:

img

多条分支

也是表示多种情况中的一种用来表示,比如:a|b|c,表示abc其中之一,如图:

img

小结

以上就是学习正则的初步理解和图示,用图来表示正则非常好理解,欢迎大家查阅,有问题请指出,觉得不错,可以给个赞,谢谢!!!