• learing day 15 (re模块与正则)


    1.正则表达式

      什么是正则? 正则是用一些具有特殊含义的符号组合在一起来描述字符或字符串的方法

      为什么用正则?对字符串进行匹配

    2.常用匹配模式

    # w与W

    1 import re
    2 #w  匹配一个字母数字下划线
    3 print(re.findall('w','hello egon 123')) 
    4 #W 匹配非字母数字下划线
    5 print(re.findall('W','hello egon 123')) 
    View Code

    # s与S

    1 import re
    2 #s 匹配任意空白字符,等价于	(制表符)
    (换行)f
    3 print(re.findall('s','hello  egon  123')) 
    4 #S 匹配任意非空字符
    5 print(re.findall('S','hello  egon  123')) 
    View Code

    # , 与 s

    1 import re
    2 #
     是换行字符
    3 #对  的输出需要进行转义 
    4 #转义  print('\')
    5 print(re.findall('a\\c','ac aac'))
    6 print(re.findall(r'a\c','ac aac'))
    7 #
     	都是空,都可以被s匹配
    8 #	 表示制表符
    9 print(re.findall('s','hello 
     egon 	 123'))
    View Code

    # d 与 D

    1 import re
    2 #d 匹配数字
    3 print(re.findall('d','hello egon 123')) 
    4 #D 匹配非数字
    5 print(re.findall('D','hello egon 123'))
    View Code

    # ^ 与 $

    1 import re
    2 #^ 从开头开始匹配
    3 print(re.findall('^h','hello egon 123')) #['h']
    4 #$ 从末尾开始匹配
    5 print(re.findall('3$','hello egon 123'))
    View Code

    重复匹配  |.|*|?|.*|.*?|+|{n,m}

     1 import re 
     2 # .代表一个字符,该字符可以是除换行符之外的任意字符
     3 # 如果需要匹配换行符则需要加参数 re.DOTALL    
     4 print(re.findall('a.b','a1b'))
     5 #* 代表左边的一个字符出现0次到无穷次
     6 print(re.findall('ab*','bbbbbbb'))
     7 #?  代表左边的一个字符出现0次到1次
     8 print(re.findall('ab?','a'))
     9 #+ 代表左边的一个字符出现1次到无穷次
    10 print(re.findall('ab+','a'))
    11 print(re.findall('ab+','abbb'))
    12 #{n,m} 代表左边的一个字符出现n次到者m次
    13 print(re.findall('ab{2}','abbb')) 
    14 print(re.findall('ab{2,4}','abbb'))
    15 #[^] 取反
    16 #.*默认为贪婪匹配
    17 print(re.findall('a.*b','a1b22222222b'))
    18 #.*?为非贪婪匹配:推荐使用
    19 print(re.findall('a.*?b','a1b22222222b'))
    View Code

    #()分组

    View Code

    3.re模块的使用

      re.DOTALL
        re.I  忽略大小写
        re.M  以 为分隔符,分隔多行
        
        re.search() 匹配成功之后就结束  不会进行下次查找
        re.group()
        re.match('','') == re.search('^','')
        
        res = re.compile()  预制正则表达式
        调用时候:
        print(res.findall())
        print(res.search())
        print(res.match())

    4.hashlib
        哈希(hash)是一种算法
        该算法接受一系列数据,经过运算会得到一个返回值,这个返回值是hsah值
        hash 具备的三大特点:
            1.知道传入的内容一样,那么得到的hash值一定是一样的
            2.只要采用的hash算法固定,无论传入内容多大,hash值的长度是固定的
            3.hash不可逆,不能通过hash值逆推出内容
        为什么要用hash?
            1和2 可以做文件完整性校验
            3加密
            import hashlib
            m = hashlib.md5()
            m.update()传参数
            m.hexdigest() 获取hash值

    学习,学习,学习! 学习是为了更好的未来,不要让别人瞧不起你,加油!!!
  • 相关阅读:
    Socket
    Cookie & Session
    一些快捷键&工具的用法收集
    过桥问题及一些想法
    微信初步开发(测试用)
    代码的编写习惯
    Python爬虫简单笔记
    如何降低AzurePaasSQL的表占用空间
    Sonar代码检测工具安装与使用及问题记录
    AzureDevops发布Artifact
  • 原文地址:https://www.cnblogs.com/yangyufeng/p/10077767.html
Copyright © 2020-2023  润新知