内容正文:
re 模块
1、 常用方法:
1. match():从头匹配
2. search():从整个文本搜索
3. findall():找到所有符合的
4. split():分割
5. sub():替换
6. group():结果转化为内容
7. groupdict():结果转化为字典
2、 常用符号:
‘.’
默认匹配除
之外的任意一个字符。若指定flag DOTALL,则匹配任意字符,包括换行
‘^’
匹配字符开头
‘$’
匹配字符结尾
‘*’
匹配*前的字符0次或多次
‘+’
匹配前1个字符1次或多次
‘?’
匹配前1个字符1次或0次
‘{m}’
匹配前1个字符m次
‘{n,m}’
匹配前1个字符n到m次
‘(…)’
分组匹配
‘\A’
只从字符开头匹配,比如re.search(“\Aabc”,”gggggabc”)是匹配不到的
‘\Z’
匹配字符结尾,和$一样
‘\d’
匹配数字0-9
‘\D’
匹配非数字
‘\w’
匹配[A-Za-z0-9]
‘\W’
匹配非[A-Za-z0-9]
‘\s’
匹配空白字符、\t、
、\r
3、 具体用法:
【前提:】import re
‘.’默认匹配除
之外的任意一个字符。若指定flag DOTALL,则匹配任意字符,包括换行'''
res = re.match('......','li123kunhong123')
print(res.group()) #结果——li123k
+:匹配前一个字符1次或多次。'''
res = re.match('.+','li123kunhong123')
print(res.group()) #结果——li123kunhong123
^:从开头匹配字符。'''
res = re.match('^li\d+','li123kunhong123')
print(res.group()) #结果——li123
$:匹配字符结尾,
$前面的必须是字符串结尾'''
res = re.search('k.+3$','li123kunhong123') #获取k开始,中间任意,g结尾的字符串
print(res.group()) #结果——kunhong123
[]:限制'''
#匹配中间的英文
res = re.search('k[a-z]+g','likunhong123')
print(res.group()) #结果——kunhong
#连数字一起匹配
res=re.search('k[a-z0-9]+g','likun123hong123')
print(res.group()) #结果——kun123hong
#匹配两个井号之间的
res = re.search('#.+#','asdf#saffff123#sadf')
print(res.group()) #结果——#saffff123#
?:匹配?的前一个字符出现或者不出现'''
res = re.search('ax?', 'abcd') #意思为ax中的a必须出现,x可以出现或者不出现
print(res.group()) #结果——a
res = re.search('ax?', 'axbcd') #匹配ax,其中a必须出现,x可不出现
print(res.group()) #结果——ax
res = re.search('a?nnc?', 'asdnnc') #匹配annc,其中nn必须出现
print(res.group()) #结果——nnc
{m}{n,m}:匹配前一个字符m次,匹配前一个字符n到m次'''
res = re.search('[0-9]{3}', 'a1a11a111')
print(res.group()) #结果——111
res = re.findall('[0-9]{3}', 'a123a113a1114')
print(res) #结果——['123', '113', '111']
1. ():分组匹配'''
res = re.search('abc{2}', '3asfabccasdf')
print(res.group()) #结果为abcc
res = re.search('(abc){2}(\|\|=)', '857kjhabcabc||=32342')
print(res.group()) #结果为abcabc||=
2. split()分割'''
res = re.split('[0-9]+', 'ab23bas23basd9989ad')
print(res) #结果为['ab', 'bas', 'ba