python:正则表达式 re

#re正则的用法:match匹配从开头  search 取一个就回来了,findout取所以匹配的,slit分割  sub替换

#-*- coding:utf8 -*-
# Auth:fulimei
#re正则的用法:match匹配从开头  search 取一个就回来了,findout取所以匹配的,slit分割  sub替换
import re
res=re.match('^chen','chenronghua')#^匹配字符开头
resa=res.group()#匹配的字符打印出来
print(res)
print (resa)
#写死了就不用正则了
#\d匹配一个数字,\d+匹配一个或多个数字
re.search#search这个用的最多
a=re.search('R[a-z]+a','112Ronghua44Ronghua')#[a-z]取a到z的一个字符,多给匹配的最后取第一个
print(a)#span=(3, 10), match='Ronghua'>
b=re.search('R[a-zA-Z]+a','112RonAghua44Ronghua')
print(b) #span=(3, 11), match='RonAghua'>
#匹配前一个字符0次或1次 ?的用法
c=re.search('aal?','aadbd')
print(c) #l可以没有,匹配了零次  match='aa'
d=re.search('aal?','aaldbd')
print(d)#匹配了1零次  match='aal'
f=re.search('[0-9]{3}','a1bc234') #匹配3个数字match='234'>
print(f)
#匹配一到三次 ,取一个就返回
g=re.search('[0-9]{1,3}','a1bc234') #取一个就返回match='1'>
print(g)
#匹配所有 ,注意findall 没有group方法
h=re.findall('[0-9]{1,3}','a1b2c345de')
print(h)#['1', '2', '345']

l=re.search('abc|ABC','ABCDabc') #match='ABC'
print(l)
J=re.findall('abc|ABC','ABCDabc') #match='ABC'
print(J)#['ABC', 'abc']
k=re.search('abc{2}','flmabccc')
print(k)#match='abcc'>
#匹配两个管道符两次 如||=
m=re.search('(\|\|=){2}','abc||=||=')
print(m)#match='||=||='

#\A从头匹配 匹配最后一个\Z
n=re.search('\A[0-9]+[a-z]\Z','123b') #结尾必须是小写字母
print(n)#match='123b'
#\D匹配非数字
o=re.search('\D+','123$%a\r\n')
print(o)#match='$%a\r\n'>
#匹配数字+字母
p=re.search('\w+','12A3b$%')
print(p)# match='12A3b'>
#匹配特殊字符
q=re.search('\W+','12A3b$%')
print(q)#match='$%'>
# \s匹配空格换行 tab键(\t)
r=re.search('\s+','123$%a \r\n  ')
print(r)

#'(?P<name>...)' 分组匹配 省 市 县
s=re.search('(?P<province>[0-9]{3})(?P<city>[0-9]{3})(?P<birthday>[0-9]{4})','220723198901021625').groupdict()
print(s)
print(s['city'])

#按什么分隔split
t=re.split('[0-9]+','abc12df44gG456DF')
print(t)#['abc', 'df', 'gG', 'DF']
#sub替换 把所有的数字替换成|
y=re.sub('[0-9]+','|','a1w234fg2fF2GG')
print(y)#  a|w|fg|fF|GG

z=re.sub('[0-9]+','|','a1w234fg2fF2GG',count=2)#替换前2个
print(z) # a|w|fg2fF2GG
re正则的用法


# \s匹配空格换行 tab键(\t)

posted @ 2016-10-28 22:33  梅子472  阅读(247)  评论(0编辑  收藏  举报