zoukankan      html  css  js  c++  java
  • py 的 第 16 天

    今天课上的主要内容本打算是模块的,可是看起来好难,今天先讲了讲正则表达式,但是讲了1天也没特别明白

    先写下模块吧,什么是模块,一组功能的集合

    你要和某个东西打交道,而这个东西本身和python没有关系,这个东西本身就存在

    py有一个功能的集合,专门负责和这个东西打交道

    模块的类型

    内置模块     不需要我们自己安装的,解释器自带的

    第三方模块  需要我们自己安装的模块  

    自定义模块  我们自己写的模块

    import   os     模块

    os。remove   删除文件

    os。rename   重命名文件

    模块就是给我们提供功能

    这个要操作的内容本来就存在

    模块只不过是py提供给我们曲操作这个内容的方法

    re模块

    在py中使用正则表达式

    今天就教了正则表达式

    正则表达式是一个独立的规则,独立的语言

    正则表达式是什么?能做什么?

    从大段的文字中找到符合规则的内容

         open打开文件

        读文件  str

        从一长串的字符串中找到所需要的XXX位数字

            一个字符一个字符的读

    判断某个字符串是否完全符合规则

        验证这个手机号是否合法

        给这个手机号发送一个验证码

        用户收到验证码    填写验证码

        完成注册

    正则表达式

      从大段的文字中找到符合规则的内容

        爬虫   从网页的字符串中获取你想要的数据

        日志分析   提取  年-月-日-------xxxx

            日志格式(包括但不限于)

              2018-1-1 10:00:00   xxxxxx

       判断某个字符串是够完全符合规则

          表单验证: 手机号 qq号码    邮箱      银行卡   身份证号    密码  

    正则表达式     只和字符串打交道

    正则表达式的规则

    只有规则,没有逻辑       字符串    从字符串中找到符合负责的内容

    字符组:【】写在括号中的内容,都出现在下面的某一个字符的位置上都是符合规则的

    【0-9】匹配数字

    【a-z】匹配小写字母

    【A-Z】匹配大写字母

    【4-6】这样就匹配一段,字母数字都可以

    [a-zA-Z0-9_]匹配大小写字母数字下划线

    65-90 字符串大写字母

    97-122  字符串小写字母

    转义符 

    w       w

    元字符

    w      匹配数字字母下划线   Word关键字[a-zA-Z0-9_]

    d       匹配所有数字     digit       [0-9]

    s       匹配所有的空白符 回车/换行符    制表符(tab) 空格   space   【 】

        匹配换行符   回车  

         匹配制表符   tab    

        匹配空格              后面有跟个空格的就是看不出来

    WDS和wds取反,正好反着来

      [sS]  [dD]  [wW]是三组全集   意思是匹配所有字符

        表示单词的边界

    和转移字母相关的   元字符

    wds( )WDS

    ^    $

    ^  匹配一个字符串的开始

    $  匹配一个字符串的结束

    .  表示匹配  除换行符的之外的所有字符

    []   只要出现在中括号内的内容都可以被匹配

    [^]只要不出现在中括号中的内容都可以被匹配

      有一些有特殊意义的字符进入字符组中会回复它本来的意义 : .  | [ ]   ( )

    a|b   或   符合a或b规则的都可以被匹配

      如果a规则是b规则的一部分,且a规则比b规则要苛刻 要长  ,就把a规则写在前面

      将更复杂的  更长的规则写在最前面

    () 分组     表示给几个字符加上量词约束的需求的时候,就给这些量词分在一个组

    量词

    {n}  表示  这个量词之前的字符出现n次

    {n,} 表示这个量词之前的字符至少出现n次

    {n,m}表示这个量词之前的字符出现n-m次

    ? 表示匹配量词之前的字符出现 0次或者1次   表示可有可无   (这个表示感觉不对)但是该怎么写现在不知道怎么说

    + 表示匹配量词之前的字符出现 1次或者多次

    * 表示匹配量词之前的字符出现 0次或者多次

    扩展

    匹配整数 d+

    匹配小数d+.d+

    匹配小数或者整数

    d+.d+|d+

    d+(.d+)?

    匹配身份证号码:【1-9】d{16}[dx]|[1-9]d{14}

            [1-9]d{14}(d{2}[dX])?

    正则表达式的匹配特点:贪婪匹配

    它会在允许的范围内取最长的结果

    非贪婪模式/惰性匹配:在量词的后面加上?

    . * ? x  匹配任意非换行符字符任意长度  直到遇到x就停止

    print(r‘\n‘)

    print(r’ ‘)

    关于字符串挪到py中的转义问题:只需要在工具中测试完毕,确认可以匹配上之后,挪到py中在字符串的外面加上r,r‘’即可

  • 相关阅读:
    线程池1-线程池原理
    CompletableFuture 详解
    服务崩溃的本质
    关于C#读取MySql数据时,返回DataTable中某字段数据是System.Array[]形式
    关于VS2010中的TraceDebugging文件夹浅说
    C#更改win7系统时间的代码,以及为什么更改不成功
    在DataColumn.Expression把DateTime转换成String的问题
    C#用委托实现异步,异步与多线程的异同
    DataColumn.Expression提示“...循环引用”的错误
    JDBC插入百万数据,不到5秒!
  • 原文地址:https://www.cnblogs.com/Mrszhao/p/9494961.html
Copyright © 2011-2022 走看看