zoukankan      html  css  js  c++  java
  • 【案例】Python

    1>用正则判断QQ邮箱是否合法

        这里QQ邮箱指QQ号+@qq.com结尾

        分析:1.QQ最短5位最长11位数

           2.以@qq.com结尾

           3.不能以0开头

      直接上代码

    import re
    
    
    def is_valid_email(email):
        c = '邮箱格式合法:'
        d = '邮箱格式不合法:'
        ex_email = re.compile(r'^[1-9][0-9]{4,10}@qq.com')
        result = ex_email.match(email)
        # print(result)
        if result:
            return c + email
        else:
            return d + email
    
    
    qqemail = '1348767137@qq.com'
    print(is_valid_email(qqemail))
    qqemail = '1348@qq.com'
    print(is_valid_email(qqemail))
    qqemail = '134876713777@qq.com'
    print(is_valid_email(qqemail))

      输出结果:

    2>验证电子邮件字符串是否合法

          要求:  1.@之前不能包含(中杠)-,及其他$&等符号,但可以包含.,开头字母和数字

               2.统一命名is_valid_email()

               3.@之后数字或者字母

               4.后缀.com|.gov|.net任一结尾

    import re
    
    
    def is_valid_email(email):
        c = '邮箱格式合法:'
        d = '邮箱格式不合法:'
        ex_email = re.compile(r'^[w][a-zA-Z1-9.]{4,19}@[a-zA-Z0-9]{2,3}.[com|gov|net]')
        result = ex_email.match(email)
        # print(result)
        if result:
            return c + email
        else:
            return d + email
    
    
    ex_email = '1348767137@qq.gov'
    ex_email1 = 'a3487.67137@qq.com'
    ex_email2 = 'A3487.67137@qq.com'
    ex_email2 = '.A348767137@qq.com'
    print(is_valid_email(ex_email))
    print(is_valid_email(ex_email1))
    print(is_valid_email(ex_email2))

       输出结果:

    2>提取合法的电子名称

        如输入1348767137@qq.com返回@前边的部分1348767137

        这里引入到group()的用法

        正则表达式中,group()用来提出分组截获的字符串,()用来分组

    import re
    
    qqemail = '1348767137@qq.com'
    # 这里加了三个分组 @前面为分组1  @本身为分组2 @后面为分组3
    ex_email = re.compile(r'(^[w][a-zA-Z1-9.]{4,19})(@)([a-zA-Z0-9]{2,3}.com)')
    result = ex_email.match(qqemail)
    # group()参数为空时返回全部分组
    print('参数为0时:' + result.group())
    # group()参数为1时返回第一个分组
    print('参数为1时:' + result.group(1))
    # group()参数为2时返回第二个分组
    print('参数为2时:' + result.group(2))
    # group()参数为3时返回第三个分组
    print('参数为3时:' + result.group(3))
    # 因此可以看出group分组从1开始 不是从0开始

        贴上结果:

    下面来完成提取合法的电子名称:

          贴上代码:

    import re
    
    
    def name_of_email(email):
        c = '电子邮箱格式合法,'
        d = '电子邮箱格式不合法:'
        ex_email = re.compile(r'(^[w][a-zA-Z1-9.]{4,19})@[a-zA-Z0-9]{2,3}.com')
        result = ex_email.match(email)
        # print(result.group())
        if result:
            e = '
    电子名称为:' + result.group(1)
            return c + email + e
        else:
            return d + email
    
    
    ex_email = '1348767137@qq.com'
    ex_email1 = '137@qq.com'
    print(name_of_email(ex_email))
    print(name_of_email(ex_email1))

        输出结果

     

        

  • 相关阅读:
    mysql 查看表注解
    oracle 相关
    sql version control
    ccna
    msql 清库
    mybatisplus,application.properties 配置数据库密码加密
    驱动开发print无法输出问题
    bochs帮助
    以虚御虚用虚拟机调试vt程式
    ssm整合
  • 原文地址:https://www.cnblogs.com/cxstudypython/p/11996395.html
Copyright © 2011-2022 走看看