正则表达式
一个字符
多个字符
d{3}s+d{3,8}
我们来从左到右解读一下:
要做更精确地匹配,可以用
切分字符串用正则表达式切分字符串比用固定的字符更灵活,请看正常的切分代码: >>> 'a b c'.split(' ') ['a','b',68)">'',68)">'c'] 嗯,无法识别连续的空格,用正则表达式试试: >>> re.split(r's+',68)">'a b c') [ 无论多少个空格都可以正常分割。加入 再加入 'd'] 分组^(d{3})-(d{3,8})$分别定义了两个组,可以直接从匹配的字符串中提取出区号和本地号码: >>> m = re.match(r'^(d{3})-(d{3,8})$',68)">'010-12345') >>> m <_sre.SRE_Match object at 0x1026fb3e8> >>> m.group(0) '010-12345' 1)
'010'
2)
'12345'
如果正则表达式中定义了组,就可以在
Match
对象上用
group()
方法提取出子串来。
如果一个正则表达式要重复使用几千次,出于效率的考虑,我们可以预编译该正则表达式,接下来重复使用时就不需要编译这个步骤了,直接匹配: >>> import re # 编译:>>> re_telephone = re.compile(# 使用:>>> re_telephone.match('010-12345').groups() ('010',68)">'12345') '010-8086').groups() ('8086') 编译后生成Regular Expression对象,由于该对象自己包含了正则表达式,所以调用对应的方法时不用给出正则字符串。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |