python的正则表达式(re模块)笔记
正则表达式的方法:
1:findall 全查找 返回列表
eg:re.findall('查找的字符串',‘被查找的字符串’)
2:search 只匹配第一个对象 返回对象 通过group获取数据
re.search()
3:match 只在字符串开始匹配 返回跟search一样
re.match(‘ab’,'abc')
4:split
eg:ret = re.split('[k,s]','djksal')
print(ret)==>['d', 'k', 'al']#先k进行切割然后再s进行切割
5:sub 替换
eg:re.sub('规则','替换成的字符串',‘被替换的字符串’)
6:compile 类似模板
>>> obj = re.compile('\.com')
>>> obj.split('www.baidu.com')
['www.baidu', '']
>>> obj.findall('www.baidu.com')
元字符:
1:“ . ”==>可匹配任何一位字符(除了换行符)
2:“ ^ ”以这个开头 “$” 以这个结尾的
3:“ * ”==》匹配0-n次
4:“ + ”==》匹配1-n次
5:“ ? ”表示0次或1次
6:“ {N} ”表示匹配n次
7:“ [a-z ] [a,b] ” 或者的关系
[^t]==>除t以外的字符
[^4,5,t]==>除了4,5和t以外的字符
8:“ | ” 或者
9:“ \ ”
\d : 表示匹配任何十进制数相当于[0-9]
\D:相当于[^0-9]
\s:匹配任何空白字符
\S:匹配任何非空白字符
\w:匹配任何字母数字字符相当于[a-zA-Z0-9]
10:" \b "匹配一个特殊边界,也就是指单词和空哥间的位置
eg:re.findall(r'I\b','hello ,I am a LIat')
输出 :I
11:()分组
ret = re.search('(?P<id>\d{3})')
可以通过ret.group('id')方式取3个数字的值
12:
13:
14: