今天课上的主要内容本打算是模块的,可是看起来好难,今天先讲了讲正则表达式,但是讲了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   【\n\t】

    匹配换行符   回车   \n

     匹配制表符   tab     \t

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

\W\D\S和\w\d\s取反,正好反着来

  [\s\S]  [\d\D]  [\w\W]是三组全集   意思是匹配所有字符

\b    表示单词的边界

和转移字母相关的   元字符

\w\d\s(\n\t)\b\W\D\S

 

^    $

^  匹配一个字符串的开始

$  匹配一个字符串的结束

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

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

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

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

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’\n‘)

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