- 正则表达式,一种独立的规则和语言,主要和字符串打交道
- 爬虫,从一大段文字中获取符合条件的内容
- 表单验证,检测一个字符串是否完全符合规则,先通过正则去判断是否符合规则,符合规则再去请求
- 爬虫,从一大段文字中获取符合条件的内容
- 字符组
- 匹配所有数字[0-9]
- 匹配所有小写字母[a-z]
- 匹配所有大写字母[A-Z]
- 匹配所有的数字大小写字母[0-9a-zA-Z]
- 根据ascii码表从小到大顺序匹配,可以一次取多个区间
- 匹配所有数字[0-9]
- 元字符
- \d匹配所有的数字,相当于[0-9]
- \w匹配所有的数字[0-9]大小写字母[a-z,A-Z]下划线_
- \s匹配所有空白符(空格,回车,tab)
- \t匹配所有tab
- \n匹配所有换行符
- \D匹配所有的非数字
- \W匹配所有的非字母数字下划线
- \S匹配所有的非空白符
- .匹配所有除换行符外任意一个字符
- ^a匹配一个字符串以a开始
- a$匹配一个字符串以a结束
- ^和$组合用必须和字符串完全匹配才可以
- []字符组匹配中括号里的内容或
- [^]匹配非括号里所有内容
- |管道符或,满足条件一个就行,位数长的放前面
- ^wind123$|^wind$
- ()分组,一般结合|一起用 类比一下Python的逻辑or
- \d匹配所有的数字,相当于[0-9]
- 量词
- {n}匹配n次
- {n,}匹配n次以上
- {m,n}匹配最少m次,最多n次
- 标识出现次数
- ?匹配0次到1次----非贪婪模式
- + 1-无穷大
- * 0-无穷大
- ?匹配0次到1次----非贪婪模式
- 贪婪匹配------->尽可能多的匹配,用?阻止贪婪
- 惰性匹配------->符合条件基础上尽量少的匹配(量词后面的?表示惰性匹配)
- {n}匹配n次
- 只写元字符,一个元字符表示一位字符上的内容
- 元字符量词结构,量词只约束前面一个元字符
- (元字符元字符)量词,如ab{3},ab出现3次
- (元字符元字符)量词,如ab{3},ab出现3次
- re模块 配合正则表达式使用python-常用模块 - 断浪狂刀忆年少 - 博客园 (cnblogs.com)
- re.findall('\w+',s)第一个参数是正则的规则,第二个参数是要匹配的字符串,findall匹配所有匹配项
- re.search('\d+',s)只匹配从左到右符合条件的第一项,返回的是一个对象,通过.group()方法取值
- re.match()相当于默认给开头加了^号,返回的是一个对象,通过.group()方法取值、
- re.split()根据正则切割
- re.sub()替换
- re.compile()预编译,正则需要编译,预编译可以节省时间,爬虫使用多
- re.finditer()节省空间,变成迭代器,通过.group()方法取值、
- re.findall('\w+',s)第一个参数是正则的规则,第二个参数是要匹配的字符串,findall匹配所有匹配项
- 比较好用的匹配公式 #(.+?)#