美文网首页
day17作业

day17作业

作者: 憨猜猜 | 来源:发表于2018-11-27 21:04 被阅读0次

    1. 写一个正则表达式判断一个字符串是否是ip地址

    规则:一个ip地址由4个数字组成,每个数字之间用.连接。每个数字的大小是0-255

    255.189.10.37 正确
    256.189.89.9 错误

    """
    0-9:\d
    10-99:[1-9]\d
    100-199:1\d{2}
    200-249:2[0-4]\d
    250--255:25[0-5]
    """
    IP_address=input('请输入IP地址:')
    re_str=r'((\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5]).){3}(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])'
    result=re.fullmatch(re_str,IP_address)
    if result:
        print('IP地址正确!!!')
    else:
        print('IP地址错误!!!')
    
    

    2. 计算一个字符串中所有的数字的和

    例如:字符串是:‘hello90abc 78sjh12.5’ 结果是90+78+12.5 = 180.5

    str1 = 'hello90abc 78sjh12.5'
    re_str = r'[1-9]\d*[.]?\d*'
    result = re.findall(re_str, str1)
    sum1 = 0
    for num in result:
        sum1 += float(num)
    print(sum1)  #180.5
    

    3. 验证输入的内容只能是汉字

    chinese=input('请输入内容:')
    re_str=r'[\u4e00-\u9fa5]'
    result=re.fullmatch(re_str,chinese)
    if result:
        print('是汉字!!!')
    else:
        print('不是汉字!!!')
    

    4. 电话号码的验证

    """
    13\d
    15[0-3] 15[5-9]
    17[6-8]
    18[0-9]
    """
    re_str=r'1(3\d|5[0-35-9]|7[6-8]|8[0-9])\d{8}'
    tel='15288446770'
    print(re.fullmatch(re_str,tel))
    

    5. 简单的身份证号的验证

    """
    前6位是数字:\d{6}
     
    年 1900-1999:19[0-9]\d
    2000-2009:    20[0-9]\d
    2010-2018:    201[0-8]
    
    月01-09: 0[1-9]
    10-12 :  1[0-2]
    
    日01-09: 0[1-9]
    10-29:   [12]\d
    30-31:   3[01]
    后四位
    有三位是数字\d{3}
    最后一位可能是数字也可能是x
    \d|x
    """
    re_str=r'\d{6}(19[0-9]\d|20[0-9]\d|201[0-8])(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}(\d|x)'
    number='530324199807131530'
    print(re.fullmatch(re_str,number))
    

    二、不定项选择题

    1. 能够完全匹配字符串“(010)-62661617”和字符串“01062661617”的正则表达式包括(a bd )

    A. “(?\d{3})?-?\d{8}”
    B. “[0-9()-]+”
    C. “[0-9(-)]\d
    D. “[(]?\d[)-]\d*”

    2. 能够完全匹配字符串“c:\rapidminer\lib\plugs”的正则表达式包括( bc )

    A. “c:\rapidminer\lib\plugs”
    B. “c:\rapidminer\lib\plugs”
    C. “(?i)C:\RapidMiner\Lib\Plugs” ?i:将后面的内容的大写变成小写
    D. “(?s)C:\RapidMiner\Lib\Plugs” ?s:单行匹配

    3. 能够完全匹配字符串“back”和“back-end”的正则表达式包括(a )

    A. “\w{4}-\w{3}|\w{4}” match->back,back-end fullmatch-> back,back-end
    B. “\w{4}|\w{4}-\w{3}” match-> back, back fullmatch-> back,back-end
    C. “\S+-\S+|\S+”
    D. “\w\b-\b\w|\w*”

    4. 能够完全匹配字符串“go go”和“kitty kitty”,但不能完全匹配“go kitty”的正则表达式包括(b )

    :\1就是重复前面第一个()/组合里面的内容
    :\2就是重复前面第二个()/组合里面的内容
    A. “\b(\w+)\b\s+\1\b”
    B. “\w{2,5}\s*\1”
    C. “(\S+) \s+\1”
    D. “(\S{2,5})\s{1,}\1”

    5. 能够在字符串中匹配“aab”,而不能匹配“aaab”和“aaaab”的正则表达式包括( ac )

    A. “a*?b”
    B. “a{,2}b”
    C. “aa??b”
    D. “aaa??b”

    相关文章

      网友评论

          本文标题:day17作业

          本文链接:https://www.haomeiwen.com/subject/ieynqqtx.html