美文网首页
Day-17练习

Day-17练习

作者: 水果坚果燕麦片 | 来源:发表于2019-01-15 16:58 被阅读0次
  1. 写一个正则表达式判断一个字符串是否是ip地址
    规则:一个ip地址由4个数字组成,每个数字之间用.连接。每个数字的大小是0-255
    255.189.10.37 正确
    256.189.89.9 错误
import re
def main():
    re_str = r'((25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)\.){3}(25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)'
    result = re.fullmatch(re_str,'255.189.10.37')
    result1 = re.fullmatch(re_str,'256.189.89.9')
    print(result)
    print(result1)

if __name__ == '__main__':
    main()
结果如下:
<_sre.SRE_Match object; span=(0, 13), match='255.189.10.37'>
None
  1. 计算一个字符串中所有的数字的和
    例如:字符串是:‘hello90abc 78sjh12.5’ 结果是90+78+12.5 = 180.5
"""__author__ == sxc"""
import re
#方法一#
class Count():
     '''声明一个类通过调用cal()方法计算对象字符串中所有对数字和'''

    def __init__(self,str:str):
        self.str = str
        self.count1 = 0
        self.lenth = 0
    def cal(self):
        self.count2 = 0
        self.lenth = len(self.str)
        for index in range(self.lenth):
            for index2 in range(index+1,self.lenth):
                str2 = self.str[index:index2]
                result = re.fullmatch(r'\d+\d+', str2)
                result1 = re.fullmatch(r'\.\d+', str2)
                if result != None:
                    self.count1 += float(str2)
                if result1 != None:
                    self.count2 += float(str2)
        print(self.count1+self.count2)

def main():
    str1 = 'hello90abc 78sjh12.5a'
    c1 = Count(str1)
    c1.cal()
    
if __name__ == '__main__':
    main()
--------
#方法二#
import re
re_str = r'\d+\.\d+|[1-9]\d+|\d'
re_str2 = r'[1-9]\d*|\d|\d+\.\d+]'
l = re.findall(re_str,"hello90abc 78sjh12.5")
# 注意:若将小数部分的判断放在后面则会使得获取出现如下错误
# 故先获取到满足小数的数字,再获取两位数以以上对数字及个位数字
# match 和 search仅匹配一次,findall匹配所有
l2 = re.findall(re_str2,"hello90abc 78sjh12.5")
print(l)
print(l2)
# 注意此处返回对列表里面是字符串
sum = 0
for item in l:
    sum += float(item)
print(sum)
结果如下:
['90', '78', '12.5']
['90', '78', '12', '5']
180.5
  1. 验证输入的内容只能是汉字
import re
def is_character(str1):
    re_str = r'[\u4E00-\u9FA5]+'
    result = re.fullmatch(re_str,str1)
    if result != None:
        print('\'%s\'是纯汉字' %str1)
    else:
        print('\'%s\'不是纯汉字' %str1)

str1 = '哈哈哈'
is_character(str1)
str2 = 'hahaha'
is_character(str2)
结果如下:
'哈哈哈'是纯汉字
'hahaha'不是纯汉字
  1. 电话号码的验证
import re
def is_telnum(str1):
    re_str = r'1[358]\d{9}|0[1-9]\d{1,2}-\d{7,8}|00[1-9]\d{1,2}-\d{7,8}'
    result = re.fullmatch(re_str,str1)
    if result != None:
        print('\'%s\'是电话号码' %str1)
    else:
        print('\'%s\'不是电话号码' %str1)

str1 = '13512345678'
is_telnum(str1)
str2 = '135123456789'
is_telnum(str2)
结果如下:
'13512345678'是电话号码
'135123456789'不是电话号码
  1. 简单的身份证号的验证
import re
def is_idnum(str1):
    re_str = r'\d{18}|\d{17}X'
    result = re.fullmatch(re_str,str1)
    if result != None:
        print('\'%s\'是身份证号码' %str1)
    else:
        print('\'%s\'不是身份证号码' %str1)

str1 = '330211199511110000'
is_idnum(str1)
str2 = '33021119951111000X'
is_idnum(str2)
str3 = '3302111995111100000'
is_idnum(str3)
结果如下:
'330211199511110000'是身份证号码
'33021119951111000X'是身份证号码
'3302111995111100000'不是身份证号码

二、不定项选择题

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

A. “(?\d{3})?-?\d{8}”
B. “[0-9()-]+”
C. “[0-9(-)]\d
D. “[(]?\d[)-]\d*”
C 可以匹配第一个字符串,不能匹配第二个字符串

  1. 能够完全匹配字符串“c:\rapidminer\lib\plugs”的正则表达式包括( B
    A. “c:\rapidminer\lib\plugs”
    B. “c:\rapidminer\lib\plugs”
    C. “(?i)C:\RapidMiner\Lib\Plugs” ?i:将后面的内容的大写变成小写
    D. “(?s)C:\RapidMiner\Lib\Plugs” ?s:单行匹配
    A 注意 \\的转义
  1. 能够完全匹配字符串“back”和“back-end”的正则表达式包括(ABD
    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*”

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

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

相关文章

  • Day-17练习

    写一个正则表达式判断一个字符串是否是ip地址规则:一个ip地址由4个数字组成,每个数字之间用.连接。每个数字的大小...

  • Brushlettering的练习 Day-17

    一直用活页本觉得有点浪费,就拿了一本没用的本子写了,接下来应该都会是句子,多练习让自己笔画更加的流畅。两张内容都是...

  • DAY-17

  • day-17

    1.正则基本符号 1.1.什么是正则表达式 正则表达式就是字符匹配的工具;是由正则符号和普通字符组成,来匹配不同规...

  • 每日速读:《斯坦福极简经济学》

    【大螺丝】打卡 | 每日速读 Day-17 市场机制是如何发挥资源配置作用的?(关键词:分工) 人一生积累财富的关...

  • day-17总结

    python对象的内置类 类._.name_获取类的名字(字符串) 类._doc_获取类的说明文档 类._dict...

  • Day-17(5.14)

    临摹。 我和你。 有了自己的小画架和小画板。开心ヽ(^㉨^)ノ 帽子画塌了ಥ_ಥ 打个底色 羽毛(இдஇ; )

  • Day-17 网络编程

    1.socketsocket编程(套接字):指的就是通过代码来实现通信的两个端(服务器,客户端)socket一般可...

  • #25天打卡学宁向东的管理学课

    Day-17 建设性冲突丨人人都用得上的管理工具 学习重点: 1、冲突是一把双刃剑,在任何团队或组织中,要完全消除...

  • [Python] (Day-17) - 面向对象

    面向对象编程(Object-Oriented Programming)介绍 OOP编程是利用“类”和“对象”来创建...

网友评论

      本文标题:Day-17练习

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