一、正则表达常用符号
1、“.”:除换行以外的所有字符 2、“[]”:匹配中括号任意个字符 3、“\d”:匹配数字 4、“*”:0次或多次 5、“+”:至少1次 6、“?”:0次或1次 7、“{m}”:固定m次 8、“{m,}”:至少m次 9、“{m,n}”:m到n次 10、“$”:以什么结尾 11、“^”:以什么开头 12、“()”:不匹配前后指定的内容
二、正则应用
findall返回的是一个列表
\d匹配到任意数字就返回
import re str='asdf23fggerg3435mmk3kmo5324' a=re.findall('\d',str) print(a) 运行结果: ['2', '3', '3', '4', '3', '5', '3', '5', '3', '2', '4']
\d+匹配到不是数字就返回
import re str='asdf23fggerg3435mmk3kmo5324' a=re.findall('\d+',str) print(a) 运行结果: ['23', '3435', '3', '5324']
\d*匹配不到返回空,连续匹配到数字
import re str='asdf23fggerg3435mmk3kmo5324' a=re.findall('\d*',str) print(a) 运行结果: ['', '', '', '', '23', '', '', '', '', '', '', '3435', '', '', '', '3', '', '', '', '5324', '']
\d?匹配不到返回空,只匹配一个数字
import re str='asdf23fggerg3435mmk3kmo5324' a=re.findall('\d?',str) print(a) 运行结果: ['', '', '', '', '2', '3', '', '', '', '', '', '', '3', '4', '3', '5', '', '', '', '3', '', '', '', '5', '3', '2', '4', '']
匹配字母g和字母m之间
(.*)和(.*?)的区别就是,带“?”的匹配到一次就结束,不带“?”匹配不到为止才返回
import re str='asdf23fggerg3435mmk3kmo5324' a=re.findall('g(.*)m',str) print(a) 运行结果: ['gerg3435mmk3k']
运行结果: ['gerg3435']
匹配3位或者4位的数值
import re str='asdf23fgg123erg3435mmk3km987o5324' a=re.findall('\d{3,4}',str) print(a) 运行结果: ['123', '3435', '987', '5324']
只匹配列表里面的数据
import re str='asdf23fgg123erg3435mmk3km987o5324' a=re.findall('[g,1,3]',str) print(a)