模块:模块:
什么是模块:
操作系统把所有的硬件管理起来
文件在硬盘上存着,从硬盘上读文件
你要和某个东西打交道,而这个东西本身和python没有关系,这个东西本身就存在,
python提供了一个功能的集合,专门负责和这个东西打交道
模块就是一组功能的集合
模块的类型:
内置模块:python解释器自带的模块
第三方模块:需要我们自己安装的模块
自定义模块:我们自己写的模块
总结:
模块手机上就是给我们提供功能
这个要操作的内容本来就存在
模块只不过是python提供给我们去操作这个内容的方法
为什么要有模块:
模块怎么用:
re模块:
正则表达式:
是一种独立的规则,独立的语言
正则表达式只和字符串打交道
特点:
贪婪匹配,会在允许范围内取最长的结果 回溯算法
非贪婪模式(惰性匹配): 在量词后面加?, 最常用的是.*? 匹配任意非换行符字符任意长度,直到遇到x停止
表示在任意时刻,匹配能匹配到的最少字符
惰性匹配,如果在量词的后面加?且在这一组正则之后么有其他匹配需求了,
那么这个问号的意思就是尽量少匹配,如果在这一组正则之后还有其他条件
那么这个问号的意思就是在能匹配上的基础上尽量少匹配
正则表达式是什么,能做什么?
从大段的文字中找到符合规则的内容
爬虫,从网页的字符串中获取你想要的数据
日志分析
判断某个字符串是否完全符合规则
表单验证: 手机号,qq好,邮箱,银行卡,身份证号,密码
正则表达式的规则:
字符组:[] 中括号表示,写在中括号中的内容,
都可以出现在下面某一个字符的位置上都是符合规则的
[0-9] : 匹配数字,必须从小到大
[a-z]: 匹配所有小写字母
[A-Z] : 匹配所有大写字母
[a-zA-Z0-9]:匹配所有的大写字母和小写字母以及所有数字
[a-zA-Z0-9_]:匹配所有的数字,字母,下划线
[0-9a-fA-F] : 可以验证十六进制字符
转译符:
\w \表示一个转译符,转译w,让w具有了特殊的意义,
在正则表达式中代表匹配字母数字下划线
\\w 前面的第一个转译符转译了第二个转译符,
让第二个转译符失去了特殊功能,恢复成一个普通的\,
这样只能匹配上一个普通的\w
\\\\w 匹配\\w
元字符:
\w : 匹配数字字母下划线 word 关键字
\d : 匹配数字 digit
\s : 匹配所有空白符 回车(换行符),制表符(tab),空格 space
\t : 匹配一个tab,制表符
\n : 匹配回车(换行符)
\W : 除了字母,其他的都匹配
\D : 除了数字,其他的都匹配
\S : 除了空白,其他的都匹配
[\s\S][\d\D][\w\W] 是三组全集,能匹配所有字符
\b : 表示单词的边界, 想匹配的内容+\b 匹配结尾
\b + 想匹配的内容 匹配单词的开头
^ : 匹配字符串的开始 ^+想匹配的内容 表示匹配字符串的开始,如果单独只写一个^,也会匹配到一条内容,开始
在我们看不到的地方会隐藏着一个开始跟^匹配
$ : 匹配字符串的结尾 想匹配的内容+$ 表示匹配字符串的结尾
^hello$ 什么都匹配不到,从开始匹配,匹配到$的时候,没有跟它匹配的内容,所以什么都匹配不到
如果只写一个hello的话,是可以匹配到的
^ 和 $ 单独使用的时候,只能出现在开头和结尾
. : 匹配除了换行符之外的所有字符
[^] : 只要不出现在中括号中的内容都可以被匹配,^必须写在最前边
a|b : 或 符合a规则的,或者b规则的,都可以被匹配,
如果a规则是b规则的一部分,且a规则比b规则要苛刻,或者长,就把a规则写在前面
将更复杂的,更长的规则写在最前面
() : 分组:1:给不止一个字符的整体做量词约束的时候
2:优先显示,当要匹配的内容和不相匹配的内容混在一起的时候
就匹配所有内容,但是对实际需要的内容进行分组
有一些特殊意义的元字符进入字符组中会恢复她本来的意义 . | [] () 量词
- 号在中括号中有特殊意义,需要转译
量词:
{n} : 重复n次,表示这个量词之前的字符出现n次
{n,} : 表示这个量词之前的字符至少出现n次
{n,m} : 表示出现n次到m次
? : 表示匹配量词之前的字符出现0次或者一次,表示可有可无的时候用?
+ : 表示匹配量词之前的字符出现一次或多次
* : 表示匹配量词之前的字符出现0次或多次
几个字符的组合关系:
字符|元字符 只约束一个字符
字符+量词 约束一个字符连续出现的次数
字符+量词? 约束一个字符连续出现的最少次数
最常用的是.*? 匹配任意非换行符字符任意长度,直到遇到x停止
匹配整数: \d+
匹配小数: \d+\.\d+
匹配小数或整数:
\d+\.\d+|\d+
\d+(\.\d+)?
匹配身份证号: 第一位不能是0,可以是18位或者15位,如果是18位的话,最后一位有可能是x: [1-9]\d{16}[\dx]|[1-9]\d{14} [1-9]\d{14}(\d{2}[\dX])?字符串挪到python中的转译问题,只需要在工具中测试完毕,确认无误后,挪到python中,在字符串外面加上r就可以了
什么是模块:
操作系统把所有的硬件管理起来
文件在硬盘上存着,从硬盘上读文件
你要和某个东西打交道,而这个东西本身和python没有关系,这个东西本身就存在,
python提供了一个功能的集合,专门负责和这个东西打交道
模块就是一组功能的集合
模块的类型:
内置模块:python解释器自带的模块
第三方模块:需要我们自己安装的模块
自定义模块:我们自己写的模块
总结:
模块手机上就是给我们提供功能
这个要操作的内容本来就存在
模块只不过是python提供给我们去操作这个内容的方法
为什么要有模块:
模块怎么用:
re模块:
正则表达式:
是一种独立的规则,独立的语言
正则表达式只和字符串打交道
特点:
贪婪匹配,会在允许范围内取最长的结果 回溯算法
非贪婪模式(惰性匹配): 在量词后面加?, 最常用的是.*? 匹配任意非换行符字符任意长度,直到遇到x停止
表示在任意时刻,匹配能匹配到的最少字符
惰性匹配,如果在量词的后面加?且在这一组正则之后么有其他匹配需求了,
那么这个问号的意思就是尽量少匹配,如果在这一组正则之后还有其他条件
那么这个问号的意思就是在能匹配上的基础上尽量少匹配
正则表达式是什么,能做什么?
从大段的文字中找到符合规则的内容
爬虫,从网页的字符串中获取你想要的数据
日志分析
判断某个字符串是否完全符合规则
表单验证: 手机号,qq好,邮箱,银行卡,身份证号,密码
正则表达式的规则:
字符组:[] 中括号表示,写在中括号中的内容,
都可以出现在下面某一个字符的位置上都是符合规则的
[0-9] : 匹配数字,必须从小到大
[a-z]: 匹配所有小写字母
[A-Z] : 匹配所有大写字母
[a-zA-Z0-9]:匹配所有的大写字母和小写字母以及所有数字
[a-zA-Z0-9_]:匹配所有的数字,字母,下划线
[0-9a-fA-F] : 可以验证十六进制字符
转译符:
\w \表示一个转译符,转译w,让w具有了特殊的意义,
在正则表达式中代表匹配字母数字下划线
\\w 前面的第一个转译符转译了第二个转译符,
让第二个转译符失去了特殊功能,恢复成一个普通的\,
这样只能匹配上一个普通的\w
\\\\w 匹配\\w
元字符:
\w : 匹配数字字母下划线 word 关键字
\d : 匹配数字 digit
\s : 匹配所有空白符 回车(换行符),制表符(tab),空格 space
\t : 匹配一个tab,制表符
\n : 匹配回车(换行符)
\W : 除了字母,其他的都匹配
\D : 除了数字,其他的都匹配
\S : 除了空白,其他的都匹配
[\s\S][\d\D][\w\W] 是三组全集,能匹配所有字符
\b : 表示单词的边界, 想匹配的内容+\b 匹配结尾
\b + 想匹配的内容 匹配单词的开头
^ : 匹配字符串的开始 ^+想匹配的内容 表示匹配字符串的开始,如果单独只写一个^,也会匹配到一条内容,开始
在我们看不到的地方会隐藏着一个开始跟^匹配
$ : 匹配字符串的结尾 想匹配的内容+$ 表示匹配字符串的结尾
^hello$ 什么都匹配不到,从开始匹配,匹配到$的时候,没有跟它匹配的内容,所以什么都匹配不到
如果只写一个hello的话,是可以匹配到的
^ 和 $ 单独使用的时候,只能出现在开头和结尾
. : 匹配除了换行符之外的所有字符
[^] : 只要不出现在中括号中的内容都可以被匹配,^必须写在最前边
a|b : 或 符合a规则的,或者b规则的,都可以被匹配,
如果a规则是b规则的一部分,且a规则比b规则要苛刻,或者长,就把a规则写在前面
将更复杂的,更长的规则写在最前面
() : 分组:1:给不止一个字符的整体做量词约束的时候
2:优先显示,当要匹配的内容和不相匹配的内容混在一起的时候
就匹配所有内容,但是对实际需要的内容进行分组
有一些特殊意义的元字符进入字符组中会恢复她本来的意义 . | [] () 量词
- 号在中括号中有特殊意义,需要转译
量词:
{n} : 重复n次,表示这个量词之前的字符出现n次
{n,} : 表示这个量词之前的字符至少出现n次
{n,m} : 表示出现n次到m次
? : 表示匹配量词之前的字符出现0次或者一次,表示可有可无的时候用?
+ : 表示匹配量词之前的字符出现一次或多次
* : 表示匹配量词之前的字符出现0次或多次
几个字符的组合关系:
字符|元字符 只约束一个字符
字符+量词 约束一个字符连续出现的次数
字符+量词? 约束一个字符连续出现的最少次数
最常用的是.*? 匹配任意非换行符字符任意长度,直到遇到x停止
匹配整数: \d+
匹配小数: \d+\.\d+
匹配小数或整数:
\d+\.\d+|\d+
\d+(\.\d+)?
匹配身份证号: 第一位不能是0,可以是18位或者15位,如果是18位的话,最后一位有可能是x: [1-9]\d{16}[\dx]|[1-9]\d{14}
[1-9]\d{14}(\d{2}[\dX])?
字符串挪到python中的转译问题,只需要在工具中测试完毕,确认无误后,挪到python中,在字符串外面加上r就可以了