正则表达式(二)–常用正则表达式
[TOC]
to完结正则表达式
承接上一篇正则的blog,这里给一点点练习讲解和常用正则
环境变更
因为写上一篇博客的时候我还在window环境下,因为一直很焦虑双系统用哪个的问题,我一举把win10和ubuntu16都删掉了,装了个ubuntu18…所以验证的平台去到了:
regex
讲解练习
电话号码的正则
电话号码由数字和“-”组成
- 如果包含区号,那么区号为三位或四位,首位是0
- 区号用“-”和其他数字分割
- 除了区号,电话号码为7到8位
- 手机号码为11位
- 11位手机号码的前2位为“13”,“14”,“15”,“17”,“18”
小答案:
1.固话:
2.手机号码:
答案:
1
2
3
4
5
6
7
8
9
10
![all](https://hwb-pic.oss-cn-shenzhen.aliyuncs.com/img/5b939fefb8e20.jpg)
### 身份证号码的正则
1. 长度:15位或者18位
2. 如果是15位,则都是数字
3. 如果是18位,最后一位可能为数字或字母X
这题简单:
>答案:```(^\d{15}$)|(^\d{17}(\d|X|x)$)
电子邮箱的正则
- 邮箱格式:用户名@网址.域名
- 用户名:字母、数字、下划线组成
- 网址:字母、数字
- 域名:2-4位字母组成,1-2个域名
- 不区分大小写
小答案
先说明的是,这个东西为了严谨,有人写过一个几百行的正则….我这里就随意写一个符合规则的罢了
也是分成三部分考虑:(用户名)@(网址).(域名)这样子看就不难写了
答案:
1
2
3
4
5
6
7
8
9
10
11
12
13
![an_3](https://hwb-pic.oss-cn-shenzhen.aliyuncs.com/img/5b93a4e838fb2.jpg)
后两题太简单了,觉得没必要讲了.
## 常用正则表达式
放一些有特殊用途的,供大家思考思考(有很多我也没有验证过的)
### 合法账号
```c
// 字母开头,允许5-16字节,允许字母数字下划线
^[a-zA-Z]\w{4,15}$
合法密码
1 | // 至少八个字符,至少一个字母和一个数字: |
检验汉字
1 | // 汉字(编码) |
常用1
1 | 1. xml文件:^([a-zA-Z]+-?)+[a-zA-Z0-9]+\\.[x|X][m|M][l|L]$ |
常用2
说明 | 正则表达式 |
---|---|
网址(URL) | [a-zA-z]+://[^\s]* |
IP地址(IP Address) | ((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?) |
日期(年-月-日) | (\d{4}|\d{2})-((1[0-2])|(0?[1-9]))-(([12][0-9])|(3[01])|(0?[1-9])) |
日期(月/日/年) | ((1[0-2])|(0?[1-9]))/(([12][0-9])|(3[01])|(0?[1-9]))/(\d{4}|\d{2}) |
时间(小时:分钟, 24小时制) | ((1|0?)[0-9]|2[0-3]):([0-5][0-9]) |
中文及全角标点符号(字符) | [\u3000-\u301e\ufe10-\ufe19\ufe30-\ufe44\ufe50-\ufe6b\uff01-\uffee] |
中国大陆邮政编码 | [1-9]\d{5} |
整数 | -?\d+ |
小数 | (-?\d+)(\.\d+)? |
不包含abc的单词 | \b((?!abc)\w)+\b |
##参考文献 | |
正则表达式入门 | |
晚晴幽草轩轩主 | |
zxin | |
极客学院wiki | |
deerchao |