一正则表达式
01 意义:
检测一个输入的字符串是否合法。web开发项目,表单验证会用到。这样在用户输入内容的时候可以提前做检测,降低了服务器的压力。
从一个大文件中找到所有符合条件的内容,爬虫,日志分析会用到。
02 正则规则
单字符匹配
d 匹配一个数字
D 匹配一个非数字
w 匹配一个字母或者下划线
W 匹配非字母下划线
s 匹配一个空白字符
S 匹配一个非空白字符
匹配一个制表符
匹配一个换行符
^ 匹配开头
$ 匹配结尾
量词
# {n} 表示匹配n次
# {n,} 表示匹配至少n次
# {n,m}表示至少匹配n次,至多m次
# ? 表示匹配0次或1次 {0,1}
# + 表示1次或多次 {1,}
# * 表示0次或多次 {0,}
二 re模块
常用的方法:
findall: 找到符合匹配规则的所有字符,贪婪匹配,越多越好
eg:
import re
ret = re.findall('d+','19740ash93010uru')
print(ret) //['19740', '93010']
search:找到符合条件的字符,惰性匹配,只匹配一次。与findall不同的是,search可以通过group属性来获取分组内容。
eg:
ret = re.search('d+','19740ash93010uru')
print(ret,type(ret)) //re.Match object; span=(0, 5), match='19740'> <class 're.Match'> 返回一个正则对象
eg:
ret = re.search('9(d)(d)','19740ash93010uru')
print(ret)
if ret:
print(ret.group(0),ret.group(1),ret.group(2)) //974 7 4