zoukankan      html  css  js  c++  java
  • day16

    1. 什么是模块

    你要和某个东西打交道,而这个东西本身和python没有关系,这个东西本身就存在pyhton提供了一个功能的集合(模块), 专门负责和这和东西打交道
    
    模块实际上就是给我们提供功能这个要操作的内容本来就存在,模块只不过是python提供给我们去操作这个内容的方法
    
    模块: 一组功能的集合模块的类型:    (1).内置模块: 不需要我们自己安装的,解释器自带的    (2).第三方模块: 需要我们自己安装的模块    (3).自定义模块: 需要我们自己写的

    2. 正则表达式

    2.1 正则表达式简介
    
        (1) 正则表达式是是一种独立的规则,独立的语言.
           正则表达式 只能和字符串打交道
    
        (2)正则表达式的规则:
            规则  字符串   从字符串中找到符合规则的内存
    
        (3)正则表达式能干什么?
            # 1.从大段的文字中找到符合规则的内容(对正则要求较高)
                # 1>爬虫 从网页的字符串中获取你想要的的数据
                # 2>日志分析 提取 2018-8-12 10:---- 花的所有钱
                      # 什么是日志:
                         # 2018-8-12 10:00:00 楼下早点摊 3.00
    
            # 2.判断某个字符串是否完全符合规则(对正则要求较低)
                # 表单验证: 手机号 QQ号码 邮箱 银行卡 身份证号 密码
    2.2 正则表达式基础
      
      普通字符就表示一个正常的字符
      元字符表示它的特殊意义,如果转义元字符,那么这个元字符就失去了特殊意义
    # 字符组: [] 写在中括号中的内容,都可以出现在下面的某一个字符的位置上(都是符合规则的) # [0-9] 匹配数字 # [a-z] 匹配小写字母 # [A-Z] 匹配大写字母 # [8-9] [a-f] 顺序必须从前往后 # [A-z] (65-122) 其中91-96是杂质 所以可以写成[a-zA-Z] # [a-zA-Z] 匹配大小写字母 # [a-zA-Z0-9] 匹配大小写字母,数字 # [a-zA-Z0-9_] 匹配数字,字母,下划线 # ascii码表 # 65 - 90[A-Z] 所有的大写字母(占的ascii码位) # 97 - 122[a-z] 所有的小写字母 # 转义符 #
    2.3 元字符
    
        # 元字符
        # w  匹配数字字母下划线 word关键字 [a-zA-Z0-9_]
        # d  匹配所有的数字  digit  [0-9]
        # s  匹配所有的空白符: 回车(换行符),制表符,空格  space  [
    	 ]
            # 匹配换行符 回车 
    
            # 匹配制表符 tab  	
            # 匹配空格 空格(普通字符)
        # W D S 和w d s取反
            # w  匹配非数字字母下划线
            # d  匹配非数字
            # s  匹配非空白符: 回车(换行符),制表符,空格
            # [sS] [dD] [wW] 是三组全集 意思是匹配所有字符
        #  表示单词的边界(开始和结尾)
            # xx  匹配单词开头
            # xx  匹配单词结尾
        
        # 和转义字符相关的 元字符
        # w d s(
    	)  W D S
        
        # ^ $
        # ^ 匹配字符串的开头 ^xx
        # $ 匹配字符串的结尾 xx$
        # 一起使用: 判断某个字符串是否完全符合规则
        
        # . 表示匹配 除换行符之外的所有字符
        
        # [] 只要出现在中括号内的内容都可以被匹配
        # [^] 只要不出现在中括号中的内容都可以被匹配
            # 有一些特殊意义的原字符进入字符组中会恢复它本来的意义(现原形): . | [] ()
        
        # a|b 或  符合a规则的或者b规则的都可以被匹配
            # 如果a规则是b规则的一部分,切a规则比b规则要苛刻|长,就把a规则写在前面
            # 将更复杂或更长的规则写在最前面
        
        # () 分组 表示给几个字符加上量词约束的时候,就给这些量词分在一个组
    2.4 量词
    
        # 量词(永远是约束元字符的)
        # {n}表示 这个量词之前的字符出现n次
        # {n,}表示 这个量词之前的字符至少出现n次
        # {n,m}表示 这个量词之前的字符出现n~m次
        # ? 表示匹配量词之前的字符出现 0次 或者 1次 表示某一位可有可无的时候
        # + 表示匹配量词之前的字符出现 1次 或者 多次
        # * 表示匹配量词之前的字符出现 0次 或者多次

      练习题:
        (1)匹配整数 d+
        (2)匹配小数 d+.d+
        (3)匹配小数或者整数
          d+.d+|d+
          d+(.d+)? (有.就有后面的小数,他们同时出现或者同时不出现)
        (4)匹配身份证: [1-9]d{16}[dx]|[1-9]d{14}
         [1-9]d{14}(d{2}[dx])?
    2.6 贪婪匹配和惰性匹配
    
        # 正则表达式的匹配特点: 贪婪匹配
        # 它会在允许的范围内取最长的结果
        
        # 非贪婪匹配(惰性匹配): 在量词后面加上?
        # .*?x  匹配任意非换行符字符 任意长度 直到遇到x就停止
    2.7 几个字符的组合关系:
    
      # 字符/元字符  只约束一个字符
      # 字符+量词    约束一个字符连续出现的次数
      # 字符+量词+?  约束一个字符出现的最少次数
          # 字符+量词+?+x  约束一个字符连续出现量词范围内的最少次数,遇到x就立即停止
      注意: 关于字符串挪到pyhton中的转移问题: 只需要在工具中测试完毕,确认可以匹配上之后,挪到python中在字符串的外面加上r,r""即可
  • 相关阅读:
    codeforces 719A:Vitya in the Countryside
    POJ3233 Matrix Power Series
    codevs1409 拦截导弹2
    BZOJ1562 [NOI2009]变换序列
    POJ1325 Machine Schedule
    codeforces 715B:Complete The Graph
    BZOJ1972:[SDOI2010]猪国杀
    浅谈模拟
    BZOJ2548:[CTSC2002]灭鼠行动
    BZOJ1033:[ZJOI2008]杀蚂蚁
  • 原文地址:https://www.cnblogs.com/kangqi452/p/11353946.html
Copyright © 2011-2022 走看看