您的位置:首页 > 编程语言 > Python开发

D5_正则表达式初步

2016-10-15 20:08 148 查看
格式:
(匹配规则pattern,数据源data_source)*数据源必须是字符串


需要导入模块:
import re


生成要匹配的正则对象:
m = re.match(pattern,data_source)


常用方法:

re.match()      '''按照格式从数据源开头进行匹配'''
re.findall()    '''找到所有要匹配的字符串并返回列表'''
re.search()     '''找到第一个要匹配的字符串并返回该字符串'''
re.split()      '''将匹配到的字符串当作分割点分割指定的字符串并返回列表'''
re.sub()        '''匹配并替换成指定字符串,返回替换后字符串。可指定要替换的个数'''
m.group()       '''使用match()关键字匹配成功后获得被匹配到的字符串'''


pattern写法

^:匹配字符串的开头。

$:匹配字符串的末尾。

.:匹配除换行符外的任意字符,当re.DOTALL标记被指定时则可以匹配包括换行符的任意字符。

[]:用于表示一组字符串,单独列出。如[amk]匹配’a’,’m’或’k’。

[^]:不在[]中的字符。

*:匹配0个或多个表达式。

+:匹配1个或多个表达式。

?:匹配0个或一个由前面的正则表达式定义的片段,非贪婪方式。

{n}:精确匹配n个前面的表达式。

{n,m}:匹配n到m次由前面的正则表达式定义的片段,贪婪方式。

a|b:匹配a或b。

():匹配括号内的表达式,也表示一个组。

\w:匹配字母和数字。

\W:匹配数字。

\s:匹配任意空白字符,等价于[\t\n\r\f]。

\S:匹配任意空白字符。

\d:匹配任意数字,等价于[0-9]。

\D:匹配任意非数字。

\A:匹配字符串开始。

\z:匹配字符串结束。

\Z:匹配字符串结束,如果存在换行只匹配到还行前的结束字符串。

\B:匹配非单词边界。

\b:匹配一个单词边界。

常见正则实例:

'''匹配手机号'''
tel = '13813801380'
re.match('(1)([358]\d{9})',tel)
<_sre.SRE_Match object; span=(0, 11), match='13813801380'>

'''匹配IPv4地址'''
ipv4 = '192.168.254.250'
re.match('\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}',ipv4)
<_sre.SRE_Match object; span=(0, 15), match='192.168.254.250'>

'''匹配E-mail地址'''
e_mail = 'dmmjy9@live.cn'
re.match('[0-9.a-z]{0,26}@[0-9.a-z]{0,20}.[0-9a-z]{0,8}',e_mail)
<_sre.SRE_Match object; span=(0, 14), match='dmmjy9@live.cn'>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python