20190511正则表达式

 

import re
#1.re.search 扫描整个字符串并返回第一个匹配的字符
urls=['http://www.baidu0.com','https://www.sohu1.com','https://www.sogou.com','http://www.qq.com']

for i in urls:
    #rule=re.match('https',i)  # 查找以https开头的网址
    rule=re.search('\d',i)   #查找内容包含数字的网址
    if rule:
        print(i)
#2. {}表示个数
print(re.match(r"\d{3}", '123aab'))   #匹配以三个数字开头的字符串
print(re.match(r'\d{3}\s+\d{2}','123aab'))#匹配含有多个空白的数字串

#3. []表示范围
print(re.match(r'[a-z0-9]','123aab'))   #匹配任意一个小字母字或数字
print(re.match(r'[a-z0-9]','aab33'))
print(re.match(r'[a-z0-9]+','aab33'))   #匹配任意多个小字母或数字
print(re.match(r'[a-z0-9]+','33aab'))

#4. *号代表任意个
print(re.findall(r'[a-z][0-9]*','aab2'))  #匹配以小写字母开头后接任意个数字的字符串
# 结果:['a', 'a', 'b2']  *代表任意个,也包括0个, 前两个a后面都没有接数字,匹配出来是单个a,后面的b2匹配的是一个字母一个数字
print(re.search(r'[a-z][0-9]*','aab245'))  #匹配以小写字母开头后面接任意个数字的字符串

#5.{}[]*自由结合
print(re.findall(r'[a-z][0-9]{1,3}','aab2'))  #匹配以小字母开头,后接1-3个数字的字符串,只是匹配没有限制是开头
print(re.search(r'[a-z][0-9]{1,3}','aab2'))

#6.^ 表示以什么开头
print(re.search(r'^[a-z0-9A-z]+@qq.com$','123@qq.com'))
print(re.search(r'^[a-z0-9A-z]+@(qq|QQ|163|126).com$','123@QQ.com'))

#7.()括号表示取其中一个
print(re.search(r'^[a-z0-9A-z]+@(qq|QQ|163|126).com$','123@QQ.com'))  #匹配字母或数字开头的 大小写qq,163,或126的邮箱

#8.用户输入用户名,判断用户名是否符合规则 :用户名长度为8,必须大写字母或下划线开头,不能含有*号
username=['M123','m1fkdf','Abcd1234','123cad','_dkfe*78']

for i in username:

    pattern=r'^[A-Z_]\w{7}' #以大写字母或下划线开头,长度为8位,大写字母开头已经占了一位,后面还剩7位,\w表示任意字符 \w{7}表示任意7位字符
    if re.match(pattern,i):
        print(i)
    else:
        print('invalid username')

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值