既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
正则表达式:(^\d{18}$)|(^\d{17}(\d|X|x)$)
现在你也许看不懂,但是等看完这篇博客之后在加以练习你就能轻松写出来了。
字符范围匹配
下面这个表是对单个字符约束的一些正则表达式:
正则表达式 | 说明 |
---|---|
A | 精准匹配单个字符 |
`x | y` |
[xyz] | 字符集合,允许出现的2个字符 |
[a-z] | 字符集合 |
[^xyz] | 集合内字符不允许出现 |
例如:匹配数字范围(0570-0579)
正则表达式为:057[0-9]
元字符
用于匹配
的特殊符号
又称作元字符
常用的元字符如下:
正则表达式 | 说明 |
---|---|
\d | 匹配任意单个数字 |
\D | 匹配\d 规则以外的任意单个字符 |
\w | 匹配任意单个数字字母下划线 |
\W | 匹配\w 规则以外的任意单个字符 |
\s | 匹配单个空格 |
\n | 匹配单个换行符 |
. | 匹配任意单个字符(换行符除外) |
\. | 特殊字符只匹配. |
示例:请匹配杭州与宁波座机号码(0571|0574-XXXXXXXX)
正则表达式为:057[14]-\d\d\d\d\d\d\d\d
多次重复匹配
当我们匹配的字符串比较长,比如身份证号有18为一个一个写\d比较麻烦,多次重复匹配只能简化我们的操作。
常用的多次重复匹配如下:
正则表达式 | 说明 |
---|---|
A{N} | 精准N次匹配 |
A{N,} | 最少出现N次 |
\d{N,M} | 最少可以出现N次,最多可以出现M次 |
\d* | 可以出现零次至无限次 |
\d+ | 最少出现一次,相当于{1,} |
\d? | 最多出现1次,相当于{0,1} |
示例:匹配全国的座机号(区号3或4位-电话号码7或8位)
正则表达式:\d{3,4}-\d{7,8}
定位匹配
正则表达式 | 说明 |
---|---|
^A.* | 头匹配-以字符A开头 |
.*A$ | 尾匹配-以字符A结尾 |
^A.*A$ | 全字匹配-以字符A开头结尾 |
示例:以C开头,B结尾的字符串
正则表达式:^C.*B$
贪婪模式与非贪婪模式
贪婪模式:在满足条件的情况下尽可能多匹配到字符串
非贪婪模式:在满足条件的情况下尽可能少匹配到字符串
正则表达式在默认的情况下就是贪婪模式
示例:输入123456
- 在使用正则表达式
\d{4,5}
,之后匹配到的是12345,可见这就是贪婪模式。 - 在使用正则表达式
\d{4,5}?
,之后匹配到的是1234,可见这就是非贪婪模式。
可见,只需要在正则表达式的后面加一个?
,就可以从贪婪模式变换到非贪婪模式。
表达式分组
分组就是
将正则分组为多个子表达式
。
示例:abababcdcdcd
正则表达式:(ab){3}(cd){3}
示例:检查输入身份证号是否合法的正则表达式
正则表达式:(^\d{18}$)|(^\d{17}(\d|X|x)$)
结合JavaScript练习正则表达式
在JS中定义正则表达式对象只需要在
//
之间书写正则表达式即可
我们实现用表单来验证输入姓名和身份证号是否合法。
![img](https://img-blog.csdnimg.cn/img_convert/44fc9f649ade6207a372720c3da38bb9.png)
![img](https://img-blog.csdnimg.cn/img_convert/f2798816ece1c3851e619be621fc7333.png)
**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!**
**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**
**[如果你需要这些资料,可以戳这里获取](https://bbs.csdn.net/topics/618668825)**
,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!**
**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**
**[如果你需要这些资料,可以戳这里获取](https://bbs.csdn.net/topics/618668825)**