re模块

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个数字

上述的例子依次匹配身份证的省、市、县

“\Z”:以什么结尾,相当于$

>>>re.search("(^\d.*\w\Z)","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}):表示将13位的数字,和小数点,匹配3

re.findall():将符合规则的全都找出来,并且分好组

flags=re.I:re.I表示忽略大小写

re.split():表示以什么为分隔符进行分割

re.sub()表示进行替换

re.M匹配多行,但是不不打印回车

re.S匹配多行

 

posted @ 2017-01-13 20:01  python包拯  阅读(106)  评论(0编辑  收藏  举报