zoukankan      html  css  js  c++  java
  • 模块的含义;正则表达式

    一,什么是模块?

       1.常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀。

       但其实import加载的模块分为四个通用类别: 

      1 使用python编写的代码(.py文件)    # 自定义模块 我们自己写的模块

      2 已被编译为共享库或DLL的C或C++扩展    # 第三方模块 需要我们自己安装的模块

      3 包好一组模块的包

      4 使用C编写并链接到python解释器的内置模块   # 内置模块 不需要我们自己安装的 解释器自带的

    
    

     2.为何要使用模块?

         如果你退出python解释器然后重新进入,那么你之前定义的函数或者变量都将丢失,因此我们通常将程序写到文件中以便永久保存下来,需要时就通过python test.py方式去执行,此时test.py被称为脚本script。

          随着程序的发展,功能越来越多,为了方便管理,我们通常将程序分成一个个的文件,这样做程序的结构更清晰,方便管理。这时我们不仅仅可以把这些文件当做脚本去执行,还可以把他们当做模块来导入到其他的模块中,实现了功能的重复利用,

     

    模块的导入应该在程序开始的地方

    更多相关内容 http://www.cnblogs.com/Eva-J/articles/7292109.html

    二,正则表达式(本身也和python没有什么关系,就是匹配字符串内容的一种规则)

    官方定义:正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,
    组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。
    在线测试工具 http://tool.chinaz.com/regex/
    # 正则表达式
        1,# 从大段的文字中找到符合规则的内容
            # 爬虫 从网页的字符串中获取你想要的数据
            # 日志分析 提取 2018-8-12 10:---- 花的所有钱
                # 什么是日志 :
                    # 2018-8-12 10:00:00 楼下早点摊 3.00
        2, # 判断某个字符串是否完全符合规则
            # 表单验证  : 手机号 qq号码 邮箱 银行卡 身份证号 密码
    
    # 正则表达式 只和字符串打交道
    
    
    1 字符组 : [字符组]
    2 在同一个位置可能出现的各种字符组成了一个字符组,在正则表达式中用[]表示
    3 字符分为很多类,比如数字、字母、标点等等。
    4 假如你现在要求一个位置"只能出现一个数字",那么这个位置上的字符只能是0、1、2...9这10个数之一。
    
    
    # 字符组 : [] 写在中括号中的内容,都出现在下面的某一个字符的位置上都是符合规则的
    # [0-9]  匹配数字
    # [a-z]  匹配小写字母
    # [A-Z]  匹配大写字母
    # [8-9]
    # [a-zA-Z] 匹配大小写字母
    # [a-zA-Z0-9] 匹配大小写字母+数字
    # [a-zA-Z0-9_] 匹配数字字母下滑线
    # 元字符
    # w  匹配数字字母下滑线 word关键字 [a-zA-Z0-9_]
    # d  匹配所有的数字     digit     [0-9]
    # s  匹配所有的空白符 回车/换行符 制表符 空格   space  [
    	 ]
        # 匹配换行符 回车 
    
        # 匹配制表符 tab  	
        # 匹配空格
    # W D S 和w d s取反
        # [sS] [dD] [wW]是三组全集 意思是匹配所有字符
    #  表示单词的边界
    
    # 和转义字母相关的 元字符
    # w d s(
    	)  W D S
    
    # ^ $
    # ^ 匹配一个字符串的开始
    # $ 匹配一个字符串的结束
    
    # . 表示匹配 除换行符之外的所有字符
    
    # []  只要出现在中括号内的内容都可以被匹配
    # [^] 只要不出现在中括号中的内容都可以被匹配
        # 有一些有特殊意义的元字符进入字符组中会回复它本来的意义 : . | [ ] ( )
    
    
    # a|b  或  符合a规则的或者b规则的都可以被匹配
        # 如果a规则是b规则的一部分,且a规则比b规则要苛刻/长,就把a规则写在前面
        # 将更复杂的更长的规则写在最前面
    # () 分组  表示给几个字符加上量词约束的需求的时候,就给这些量词分在一个组
    # 量词
    # {n}表示 这个量词之前的字符出现n次
    # {n,} 表示这个量词之前的字符至少出现n次
    # {n,m} 表示这个量词之前的字符出现n-m次
    # ? 表示匹配量词之前的字符出现 0次 或者 1次 表示可有可无
    # + 表示匹配量词之前的字符出现 1次 或者 多次
    # * 表示匹配量词之前的字符出现 0次 或者 多次

        贪婪匹配:                                   

    # 正则表达式的匹配特点 : 贪婪匹配
    # 它会在允许的范围内取最长的结果
    # 非贪婪模式/惰性匹配 : 在量词的后面加上?
        # .*?x   匹配任意非换行符字符任意长度 直到遇到x就停止
    
    # print(r'\n')
    # print(r'
    ')
    
    # 关于字符串挪到python中的转义的问题 : 只需要在工具中测试完毕,确认可以匹配上之后,
    挪到python中在字符串的外面加上r,r''即可






  • 相关阅读:
    后台管理UI的选择
    通过Js对电话和姓名身份证等进行部分隐藏处理
    12个用得着的JQuery代码片段
    Java获取登录用户IP地址
    Android Gson解析json详解
    Android——SD卡工具类——SDCardUtils.java
    【读书笔记】---《失控》
    【读书笔记】.Net并行编程(三)---并行集合
    Wix 安装部署教程(十六) -- 自动生成多语言文件
    【月末轻松篇】--- 那些奇葩的Bugs
  • 原文地址:https://www.cnblogs.com/zwq-/p/9488290.html
Copyright © 2011-2022 走看看