简介
正则表达式是绕不开的,正则的强大是众所周知的,学会它对我们的编程也是有大大的帮助
模糊匹配
正则表达式之所以强大,就要归功于它的模糊匹配,不能可以匹配不同数量的字符串,还可以匹配不同内容的字符串。如果正常只能精确匹配字符串,那正则的效果就没有啥用了比如:/a/就匹配一个a字符。
用于匹配字符串长度的横行匹配
匹配的字符串长度是不固定的,如图所示:
![26688363175427382fd146295a7d1590.png](https://i-blog.csdnimg.cn/blog_migrate/16456374811f084e5e53df5ac65b9b3d.png)
用于匹配字符串多种情况内容的纵向匹配
匹配的字符串的内容是几种情况中的一种,如图所示:
![c662067474ec30c387490c7b47999b69.png](https://i-blog.csdnimg.cn/blog_migrate/add53d86e0ea7999e8426193e31dc4d5.png)
字符组
我们在写正则匹配的时候,在一个位置上,比如一个字符串的某个索引上可能的值有很多个,假设就是abc其中一个字母。那么我们就需要用到字符组,大概的意思就是一组字符中的其中一个。
- 表示一个位置可能出现的多种情况,正则表示
/[abc]/
,图解如下:
![cabaaa5823de0590dd7e687b0ae186d8.png](https://i-blog.csdnimg.cn/blog_migrate/96eac2b6201ba0043d5d2f333d2bb2c7.png)
- 表示一个范围取值,也是多种情况取其一,正则表示
[1-6a-f]
,图解如下:
![bf75187f5c4f583244a3eb5a3a89f63a.png](https://i-blog.csdnimg.cn/blog_migrate/443795e90cdce7d161d3db3bff13a8cd.png)
在表示范围这里需要注意下,有时我们需要匹配的就只是表示范围的三个值比如:a
-
f
那我们的正则就不能[a-f]
这样写了,需要像这样写:
[-af]
![eaa35055042f04ed82449f610264ef8c.png](https://i-blog.csdnimg.cn/blog_migrate/c84118efb33615865610560c35190922.png)
[-fa]
![5722c8b648c640cb445e39bbc32dbb14.png](https://i-blog.csdnimg.cn/blog_migrate/b6eb3fb9a2ca491d81f1759ac2461d32.png)
[a-f]
![b52b8cebee45c077d29a85c5f45cb3e6.png](https://i-blog.csdnimg.cn/blog_migrate/5b096b33ba8b0d6af197d1021f8aacf1.png)
- 排除部分值,也就是说把不要的值写出来,正则
[^abc]
表示排除abc其中之一,图解如下:
![84ca7494047ad76bc0eec27c62dd5bd3.png](https://i-blog.csdnimg.cn/blog_migrate/7b94b3356d34f27c9d8e95c9579c4a5c.png)
- 常见的几种简写方式
- d = [0-9]
![db34e1765f2f18865830a0c585c10821.png](https://i-blog.csdnimg.cn/blog_migrate/cbf6d3d771fa0478b089383b9593ff1d.png)
![3f085e8e799f596b1e9958cf76a66232.png](https://i-blog.csdnimg.cn/blog_migrate/8e663dca0eec0a0dd3905c46c6294e94.png)
- D = [^0-9]
![9530340f0af1a0439f683b1f1cd06ccb.png](https://i-blog.csdnimg.cn/blog_migrate/d32e694aea6308d98b2633ef45ace28e.png)
![ab072d486d14356dcc3d4b2fed221673.png](https://i-blog.csdnimg.cn/blog_migrate/d138d07712ad3880401a8d97785d9587.png)
- w = [0-9a-zA-Z_]
![f69f182c8ed99496334113eb7c133b9a.png](https://i-blog.csdnimg.cn/blog_migrate/d5e55006082bb84a7689bf6eece5ba12.png)
![f8aaeb5e9cd6e3a9fa73cec97bd43077.png](https://i-blog.csdnimg.cn/blog_migrate/249917a5e2658eaa27ba83dc109a22bb.png)
- W = [^0-9a-zA-Z]
![1d9813873fbb7600e48bb5232817b73a.png](https://i-blog.csdnimg.cn/blog_migrate/4f9aa1e3389617dcdee174b6c06ce82d.png)
![3c843519f8ea5b4b117a1425f237f50f.png](https://i-blog.csdnimg.cn/blog_migrate/8936fc973f5f786cde8b53d44403fc5d.png)
- s = [tvnrf]
![062e13267037e0fbf11a578509f0c9a7.png](https://i-blog.csdnimg.cn/blog_migrate/15bebed2eb596adf33f9623e0993f2ad.png)
![2fef038b58dfc359f9364fc178db6bed.png](https://i-blog.csdnimg.cn/blog_migrate/cb3ef8b5de16381316b831528213983e.png)
- S = [^tvnrf]
![fc78c1b5056041e1e38dd1fabcb039c5.png](https://i-blog.csdnimg.cn/blog_migrate/0fa6f751ffc8dae8476bc445713cf8a5.png)
![4702eeaf1d0907aef087321aba04d375.png](https://i-blog.csdnimg.cn/blog_migrate/335037e2f96715726a5ed76b70025767.png)
- . = [^nru2028u2029]
![5b80e4a0ceec1e9109a9bcdaeb9740b9.png](https://i-blog.csdnimg.cn/blog_migrate/1880916578db6117c4193a5fe68b5506.png)
![1c5d4f462bf2ebb0e4acb380203206e5.png](https://i-blog.csdnimg.cn/blog_migrate/69d4dcbd971a7ffd4ff3f58fd6ccdc03.png)
量词
简写形式
- {m,}至少出现m次,m是一个数量。比如a{9,}表示a至少出现9次,如图
![5877bd523de5602d5b606d3f5b6e3a38.png](https://i-blog.csdnimg.cn/blog_migrate/dae388c08554cdd205d79dfa987006a8.png)
- {m} = {m,m} = 出现m次。比如a{9}表示a出现9次,如图:
![4d7c20fdcca62470184778b865ffa2ec.png](https://i-blog.csdnimg.cn/blog_migrate/37d5ecadd066d282debf4bb9413fb0cf.png)
- ? = {0,1} = 不出现或出现一次。比如a?表示a不出现或者出现1次,如图:
![e58c3ab7bb4a4af1e4e8c7a92ae36876.png](https://i-blog.csdnimg.cn/blog_migrate/089aaebf09a9f20d2150c3bc88544cfb.png)
- + = {1,} = 至少出现1次。比如a+表示a至少出现1次,如图:
![b8d056ed29ef4abb311892c85fffcc92.png](https://i-blog.csdnimg.cn/blog_migrate/ef3e36b7d97fe84d5dc3c1c036883cf0.png)
- * = {0,}= 出现任意多次。比如a*表示a出现任意多次,可能很多,也可能一次没出现,如图:
![7a9d8098c4db92aa5afe182240295acd.png](https://i-blog.csdnimg.cn/blog_migrate/8e16537b8c7cc82cc1bb37ec71d9ce58.png)
多条分支
也是表示多种情况中的一种用|
来表示,比如:a|b|c,表示abc其中之一,如图:
![28243f2d4dfce7c2f2126221ffad8178.png](https://i-blog.csdnimg.cn/blog_migrate/ec2623a3e55dbd9c6f2be89cc8876a93.png)
小结
以上就是学习正则的初步理解和图示,用图来表示正则非常好理解,欢迎大家查阅,有问题请指出,觉得不错,可以给个赞,谢谢!!!