re模块
“.”:表示匹配一个字符
a=re.match(“.”,”inet addr:192.168.1.210 Bcast:192.168.1.125”)
a.group()
‘i’
“+”:表示匹配多个字符
“w”只能匹配一个字母和数字,如果有特殊字符会报错,如下所示:
{n,m}最少匹配前面的n次,最多匹配m次,但由于w不可以匹配空格,所以下面匹配5次的时候会报错,换成{1,8}就不会报错
“|”:匹配两边的,比如abc|inet,找有没有abc或者inet
分组匹配
>>> re.search("(d{2})(d{2})(d{2})(d{4})","612524199301080038 name:xiangxiao").groups()
“d”:表示匹配一个数字
(d{2}):匹配2个数字
上述的例子依次匹配身份证的省、市、县
“”:以什么结尾,相当于$
>>>re.search("(^d.*w)","612524199301080038name:xiangxiao").group()
以数字开头,以字母结尾
>>>re.search("(?P<province>[0-9]{4})(?P<city>[0-9]{2})","612524199301080038").groupdict()
以字典的方式打印
{'province': '6125', 'city': '24'}
“?P<name>”:表示分组匹配
匹配出IP地址
>>> re.search("(d{1,3}.){3}d{1,3}","inet addr:192.168.210 Bcast:192.168.1.125").group()
(d{1,3}.{3}):表示将1到3位的数字,和小数点,匹配3次
re.findall():将符合规则的全都找出来,并且分好组
flags=re.I:re.I表示忽略大小写
re.split():表示以什么为分隔符进行分割
re.sub()表示进行替换
re.M匹配多行,但是不不打印回车
re.S匹配多行