美文网首页
day17-作业

day17-作业

作者: d4lx | 来源:发表于2018-09-11 20:55 被阅读0次
    1. 写一个正则表达式判断一个字符串是否是ip地址
    ip = input('请输入ip地址:')
    # ip分为三位数的情况:1[0-9][0-9]、2[0-4][0-9]、25[0-5]两位数的情况:[1-9][0-9]一位数的情况:[0-9]
    str = r'^((1[0-9][0-9]\.)|(2[0-4][0-9]\.)|(25[0-5]\.)|([1-9][0-9]\.)|([0-9]\.)){3}((1[0-9][0-9])|(2[0-4][0-9])|(25[0-5])|([1-9][0-9])|([0-9]))$'
    if re.fullmatch(str,ip):
     print('正确')
    else:
     print('错误')
    

    结果:


    1.png
    1. 计算一个字符串中所有的数字的和
    str = 'hello90abc 78sjh12.5'
    re_str = r'\d+\.\d|\d+'
    values = re.findall(re_str,str)
    sum1 = 0
    for value in values:
     sum1 += float(value)
    print(sum1)
    

    结果:


    2.png
    1. 验证输入的内容只能是汉字
    # 汉字的编码范围   4E00-9FA5
    re_content = r'[\u4e00-\u9fa5]+'
    while True:
     content = input('请输入汉字:')
     if re.fullmatch(re_content,content):
      print('输入的不是汉字')
     else:
      print('是汉字')
      break
    

    结果:


    3.png
    1. 电话号码的验证
    while True:
     tel = input('请输入电话号码:')
     re_tel = r'^1[3|4|5|8][0-9]\d{8}$'
     if re.fullmatch(re_tel,tel):
      print('输入正确')
      break
     else:
      print('输入错误')
    

    结果:


    4.png
    1. 简单的身份证号的验证
    # 身份证15位编码规则:dddddd yymmdd xx p
    # dddddd:6位地区编码
    # yymmdd: 出生年(两位年)月日,如:910215
    # xx: 顺序编码,系统产生,无法确定
    # p: 性别,奇数为男,偶数为女
    #
    # 身份证18位编码规则:dddddd yyyymmdd xxx y
    # dddddd:6位地区编码
    # yyyymmdd: 出生年(四位年)月日,如:19910215
    # xxx:顺序编码,系统产生,无法确定,奇数为男,偶数为女
    #  y: 校验码,该位数值可通过前17位计算获得
    # 15位:[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3} 月份为01-12;日期为:01-31
    # 18位:[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])((\d{4})|\d{3}[Xx]) 多了年份的判断:第一位为1-9;后面3个为数字
    while True:
     id = input('请输入身份证号码:')
     re_id = r'^(^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$)|(^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])((\d{4})|\d{3}[Xx])$)$'
     if re.fullmatch(re_id,id):
      print('输入正确')
      break
     else:
      print('输入错误')
    

    结果:


    5.png

    二、不定项选择题

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

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

    1. 能够完全匹配字符串“c:\rapidminer\lib\plugs”的正则表达式包括(B、C )
      A. “c:\rapidminer\lib\plugs”
      B. “c:\rapidminer\lib\plugs”
      C. “(?i)C:\RapidMiner\Lib\Plugs” ?i:将后面的内容的大写变成小写
      D. “(?s)C:\RapidMiner\Lib\Plugs” ?s:单行匹配

    2. 能够完全匹配字符串“back”和“back-end”的正则表达式包括( A、C、D )
      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*”

    3. 能够完全匹配字符串“go go”和“kitty kitty”,但不能完全匹配“go kitty”的正则表达式包括(A、C、D )
      :\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”

    4. 能够在字符串中匹配“aab”,而不能匹配“aaab”和“aaaab”的正则表达式包括(B、C )
      A. “a*?b”
      B. “a{,2}b”
      C. “aa??b”
      D. “aaa??b”

    相关文章

      网友评论

          本文标题:day17-作业

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