正则表达式(二)--常用正则表达式
@(study)[Maxe, markdown_study, LaTex_study]
[TOC]
to完结正则表达式
承接上一篇正则的blog,这里给一点点练习讲解和常用正则
环境变更
因为写上一篇博客的时候我还在window环境下,因为一直很焦虑双系统用哪个的问题,我一举把win10和ubuntu16都删掉了,装了个ubuntu18...所以验证的平台去到了:
regex
讲解练习
电话号码的正则
电话号码由数字和“-”组成
- 如果包含区号,那么区号为三位或四位,首位是0
- 区号用“-”和其他数字分割
- 除了区号,电话号码为7到8位
- 手机号码为11位
- 11位手机号码的前2位为“13”,“14”,“15”,“17”,“18”
小答案:
1.固话:
2.手机号码:
手机
all答案:
(0\d{2,3}-\d{7,8})|(^1(3|4|5|7|8)\d{9}$)
身份证号码的正则
- 长度:15位或者18位
- 如果是15位,则都是数字
- 如果是18位,最后一位可能为数字或字母X
这题简单:
身份证答案:
(^\d{15}$)|(^\d{17}(\d|X|x)$)
电子邮箱的正则
- 邮箱格式:用户名@网址.域名
- 用户名:字母、数字、下划线组成
- 网址:字母、数字
- 域名:2-4位字母组成,1-2个域名
- 不区分大小写
小答案
先说明的是,这个东西为了严谨,有人写过一个几百行的正则....我这里就随意写一个符合规则的罢了
也是分成三部分考虑:(用户名)@(网址).(域名)这样子看就不难写了
an_3答案:
^(\w+)@([0-9a-zA-Z]+)(\.[a-zA-Z]{2,4}){1,2}$
后两题太简单了,觉得没必要讲了.
常用正则表达式
放一些有特殊用途的,供大家思考思考(有很多我也没有验证过的)
合法账号
// 字母开头,允许5-16字节,允许字母数字下划线
^[a-zA-Z]\w{4,15}$
合法密码
// 至少八个字符,至少一个字母和一个数字:
^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$
// 至少八个字符,至少一个字母,一个数字和一个特殊字符:
^(?=.*[A-Za-z])(?=.*\d)(?=.*[$@$!%*#?&])[A-Za-z\d$@$!%*#?&]{8,}$
// 最少八个字符,至少一个大写字母,一个小写字母和一个数字
"^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{8,}$"
// 至少八个字符,至少一个大写字母,一个小写字母,一个数字和一个特殊字符:
"^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@$!%*?&])[A-Za-z\d$@$!%*?&]{8,}"
// 最少八个最多十个字符,至少一个大写字母,一个小写字母,一个数字和一个特殊字符:
"^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@$!%*?&])[A-Za-z\d$@$!%*?&]{8,10}"
检验汉字
// 汉字(编码)
^[\u4e00-\u9fa5]{0,}$
常用1
1. xml文件:^([a-zA-Z]+-?)+[a-zA-Z0-9]+\\.[x|X][m|M][l|L]$
2. 空白行的正则表达式:\n\s*\r (可以用来删除空白行)
3. HTML标记的正则表达式:<(\S*?)[^>]*>.*?</\1>|<.*? />
4. 首尾空白字符的正则表达式:^\s*|\s*$或(^\s*)|(\s*$) (可以用来删除行首行尾的空白字符)
5. 腾讯QQ号:[1-9][0-9]{4,} (腾讯QQ号从10000开始)
常用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 |
网友评论