正则不能全为某个值_图解正则——字符匹配

简介

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

模糊匹配

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

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

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

26688363175427382fd146295a7d1590.png

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

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

c662067474ec30c387490c7b47999b69.png

字符组

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

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

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

bf75187f5c4f583244a3eb5a3a89f63a.png

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

[-af]

eaa35055042f04ed82449f610264ef8c.png

[-fa]

5722c8b648c640cb445e39bbc32dbb14.png

[a-f]

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

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

db34e1765f2f18865830a0c585c10821.png

3f085e8e799f596b1e9958cf76a66232.png
  1. D = [^0-9]

9530340f0af1a0439f683b1f1cd06ccb.png

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

f69f182c8ed99496334113eb7c133b9a.png

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

1d9813873fbb7600e48bb5232817b73a.png

3c843519f8ea5b4b117a1425f237f50f.png
  1. s = [tvnrf]

062e13267037e0fbf11a578509f0c9a7.png

2fef038b58dfc359f9364fc178db6bed.png
  1. S = [^tvnrf]

fc78c1b5056041e1e38dd1fabcb039c5.png

4702eeaf1d0907aef087321aba04d375.png
  1. . = [^nru2028u2029]

5b80e4a0ceec1e9109a9bcdaeb9740b9.png

1c5d4f462bf2ebb0e4acb380203206e5.png

量词

简写形式

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

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

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

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

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

7a9d8098c4db92aa5afe182240295acd.png

多条分支

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

28243f2d4dfce7c2f2126221ffad8178.png

小结

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值