美文网首页
2019-01-15 day17 作业

2019-01-15 day17 作业

作者: 蒲小黑 | 来源:发表于2019-01-15 20:56 被阅读0次

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

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

    255.189.10.37 正确

    256.189.89.9 错误

    import re
    from re import fullmatch
    """
    255
    1 - 9 [1-9]
    10 - 99   [1-9]\d
    100 - 199   1\d\d
    200 - 249    2[0-4]\d
    250 - 255   25[0-5]
    """
    re_str = r'((([1-9]|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.){3}([1-9]|[1-    9]\d|1\d\d|2[0-4]\d|25[0-5]))'
    result = fullmatch(re_str, '255.189.10.37')
    result1 = fullmatch(re_str,'256.189.89.9 ')
    print(result)
    print(result1)
    

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

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

    import re
    from re import fullmatch
    """
    90  -   [1-9]\d*\.?\d*
    78  -   
    12.5    -   
    """
    sum = 0
    re_str = r'[1-9]\d*\.?\d*'
    result = re.findall(re_str, 'hello90abc 78sjh12.5')
    for num in result:
        sum += float(num)
    print(sum)
    

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

    re_str = r'([\u4e00-\u9fa5])'
    result = fullmatch(re_str, input('请输入一个字符:'))
    if result != 0:
        print('是汉字!')
    else:
        print('不是汉字!')
    

    4. 电话号码的验证

    中国移动号段:182、183、184、187、188、
    中国联通号段:185、186
    中国电信号段: 180 、181 、
    130 131 132   133 134 135 136、137、138、139
    145   147
    50 51 52 53 55 56 57 58 59
    166
    71 73 76 77 78
    81-88
    re_str = r'13\d{8}|14[57]\d{8}|15[123567890]\d{8}|166\d{8}|17[13678]{8}|18[1-8]{8}'
    result = fullmatch(re_str,input('请输入一个电话号码:'))
    print(result)
    if result != 0:
        print('是电话号码!')
    else:
        print('不是电话号码!')

    相关文章

      网友评论

          本文标题:2019-01-15 day17 作业

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