python整理笔记4——正则表达式(QQ,手机号,邮箱,用户名,密码)

来源:互联网 发布:软件水平与资格考试 编辑:程序博客网 时间:2024/05/01 08:21

QQ号表达式:

分析:
1、首先扣扣号开头不能为0;
2、QQ号必须大于5且小于11(或12,13,QQ号最长位);
则正则表达式为:    “[1-9]\\d{4,10}" 
解析:
[1-9]为第一个数(第一个数不为0);
\\d:第一'\'为转义字符,'\d'为产生[0-9]的数字(第二位往后数字任意);
{4,10}表示至少4次最多10次(因为[1-9]占1位,剩下4或10位,这里默认扣扣号最短5位,最长10位);

手机号表达式:

分析:
1、手机号位数为11位;
2、开头为1,第二位为3或4或5或8;
则表达式为:    ”1[3458]\\d{9}
解析:
1:开头必须为1;
[3458]:第二位; 
\\d: 第一个为转义字符,'\d'为产生任意数字;
{9}:恰好出现9次;

扩展:写出手机号表达式,且后5位相同;
”1[3458]\\d{4}(\\d)\\1{4}"
解析:
1:开头必须为1;
[3458]:第二位;
"\\d{4}":产生[0-9]的数字恰好出现4次(由于前面占2位,后面重复5次,11减去7,还剩4位);
"(\\d)\\1{4}”:首先圆括号()表示组的意思,'\\1'中的1表示的是第一组,第一个‘'\'表示转义,{4}出现4次,产生一个数最为一个组,将这组元素再重复4次;   注:(组:(\\d)\\1(\\d)\\2中的\\2表示第二组);

邮箱表达式:

xxxx@xxx.com/cn/com.cn

eg:haha@163.com; ha_ha@alibaba.com.cn; ha-ha@sina.com;123456789@qq.com 等;

分析:

1、@符号前面的可以为字母,数字,下划线,中划线,或'.';
2、@后面的可以是xxx.com、xxx.cn、xxx.com.cn;
表达式:"[\\w-\\.]+@([\\w]+\\.)+[a-z]{2,3}"
解析:
[\\w-\\.]: "\\w"为产生单个字符(a-z或A-Z或[0-9]),‘-’可能出现为中划线,“\\."表示可能出现'.' ;
’+‘表示'[]'里面出现一次或多次;
’@‘:为邮箱里面的@符号;
([\\w]+\\.)+:首先[\\w]+表示单个字符(a-z或A-Z或[0-9])出现一次或多次(如以上邮箱:@163,@alibaba,@sina,@qq,分别出现3,7,4,2次); ([\\w]+\\.)+:将()里面看成一组,()+这组出现一次或多次(为什么加上'.'?? ,因为后缀有两种格式:xxx@xxx.com或者xxx@xxx.com.cn,将(xxx.)和(com.)可看成相同格式的组);
[a-z]{2,3}: 产生后缀.com或.cn,所以出现2到3次;

用户名表达式:

题目:必须以字母开头,长度在10位以内
表达式:"[a-zA-z]\\w{0,9}"
解析:
[a-zA-Z]:用户名的第一位数为字母,[a-zA-z]表示产生这个a-z或A-Z范围的字母;
\\w{0,9}:  \\w产生单个字符 (a-z或A-Z或[0-9]),{0,9}:为至少0次最多9次;

密码表达式:

题目:任意字符,6~16位
表达式:".{6,16}"
解析:
'.' :  为产生任意字符;
{6,16}:至少6位,最多16位;




1 0
原创粉丝点击