py 的 第 16 天

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

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

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

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

模块的类型

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

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

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

import   os     模块

os。remove   删除文件

os。rename   重命名文件

扫描二维码关注公众号,回复: 2820079 查看本文章

模块就是给我们提供功能

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

模块只不过是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‘’即可

猜你喜欢

转载自www.cnblogs.com/Mrszhao/p/9494961.html
今日推荐