正则表达式
模块:
什么是模块: 模块就是一组功能的集合
模块的类型:
内置模块:不需要自己安装,python自带的模块
第三方模块:需要我们自己安装的模块
自定义模块:我们自己写的模块
例:
import os #导入模块
os.remove() #删除文件
os.rename() #重命名文件
模块为我们提供功能,这个操作的对象本来就存在,模块就是python提供给我们操作对象的方法.
正则表达式的作用
#从大段的文字中找到符合规则的内容
#爬虫 从网页的字符串中获取你想要的数据
#日志分析
#判断某个字符是否完全符合规则
#表单验证 手机号 qq号码 邮箱 银行卡 身份证号码 密码
正则表达式只和字符串打交道.
字符组:[ ] 写在中括号里面的内容,都出现在下面的某一个字符的位置上都是符合规则的.
[0-9] 匹配数字
[a-z] 匹配小写字母
[A-Z] 匹配大写字母
[a-zA-Z] 匹配大小写字母
[a-zA-Z0-9] 匹配大小写字母数字
[a-zA-Z0-9_] 匹配大小写字母数字下划线
元字符
\w 匹配数字字母下划线 等价于[a-zA-Z0-9_]
\d 匹配所有的数字 [0-9]
\s 匹配所有的空白符 回车/换行符 制表符 空格 space[\n\t ]
匹配换行符 回车\n
匹配制表符 tab \t
匹配空格
\W \D \S 和\w \d \s取反
[\w\W] [\d\D] [\s\S] 是三组全集,匹配所有的字符
\b 表示单词的边界
和转义字符相关的元字符
\w \d \s(\n\t) \b \W \D \S
^ $
^ 匹配一个字符串的开始
$ 匹配一个字符串的结束
. 匹配出换行符之外的所有字符
[] 只要出现在中括号内的内容都可以匹配
[^] 只要不出现在中括号内的内容都可以匹配
有一些特殊意义的元字符进入字符组中会恢复他本来的意义: . | [ ] ()
a|b 或 符合a规则或者b规则的都可以被匹配
如果a规则是b规则的一部分,且a规则比b规则要苛刻/长,就把a规则写在前面
将更复杂的\更长的规则写在最前面
() 分组 表示给几个字符加上量词约束的需求的时候,就给这些量词分在一个组里
量词(6个)
{n} 表示这个量词之前的字符出现n次
{n,} 表示这个量词之前的字符至少出现n次
{n,m} 表示这个量词之前的字符出现n--m次
? 表示匹配量词之前的字符出现0次或1次
* 表示匹配量词之前的字符出现0次或多次
+ 表示匹配量词之前的字符出现1次或多次
正则表达式的匹配特点: 贪婪匹配
贪婪匹配会在允许的范围内取最长的结果
非贪婪匹配/惰性匹配: 在量词后面加上?
.*?x 匹配任意长度的非换行字符,直到遇见x停止
关于字符串挪到python中的转义问题:只需要在工具中测试完毕,确认可以匹配以后,挪到python中在字符串的外面加上r,r' '即可.