python 正则匹配的简单使用

 摘要:熟悉python中的正则匹配规则;\w\W \d\D \s\S ; *?+; ^|; () \\ 的用法


import  re

def demo_re():
    str='zhengguoliang2019wuhan0812csu2012'
    p1=re.compile('[\d]+')
    p2=re.compile('\d+')  # 一个或者一个以上
    print(1,p1.findall(str)) # 1 ['2019', '0812', '2012']
    print(2,p2.findall(str))  # 2 ['2019', '0812', '2012']
    p3=re.compile('[\d]')  # 一个
    print(3,p3.findall(str)) # 3 ['2', '0', '1', '9', '0', '8', '1', '2', '2', '0', '1', '2']
    p4=re.compile('[\d]*') # 0个或者0个以上
    print(4,p4.findall(str)) # 4 ['', '', '', '', '', '', '', '', '', '', '', '', '', '2019', '', '', '', '', '', '0812', '', '', '', '2012', '']
    p5=re.compile('[\d]?') # 0个或者1个
    print(5,p5.findall(str)) # 5 ['', '', '', '', '', '', '', '', '', '', '', '', '', '2', '0', '1', '9', '', '', '', '', '', '0', '8', '1', '2', '', '', '', '2', '0', '1', '2', '']


def demo_ReEmail():
    str='dxk@163.com;xkw23-sk@qq.com;xk_sq@huawei.com;xksle23@163.com;xk@qq.com;29sl@125.com;oe920@baidu.com'
    p1=re.compile('[\w|-]+@[\w]+\.[\w]+')
    print(1,p1.findall(str))  # 1 ['dxk@163.com', 'xkw23-sk@qq.com', 'xk_sq@huawei.com', 'xksle23@163.com', 'xk@qq.com', '29sl@125.com', 'oe920@baidu.com']
    p2=re.compile('\w+@[\w]+\.[\w]+')
    print(2,p2.findall(str)) # 2 ['dxk@163.com', 'sk@qq.com', 'xk_sq@huawei.com', 'xksle23@163.com', 'xk@qq.com', '29sl@125.com', 'oe920@baidu.com']
    p3=re.compile('[\w|-|_]+@[163|baidu]+\.com')
    print(3,p3.findall(str)) # 3 ['dxk@163.com', 'xksle23@163.com', 'oe920@baidu.com']
    str='x42ls_d;sk+sl@163.com;ske_sk12@152.com'
    p4=re.search('\w+@\w+\.\w+',str)
    print(4,p4.group())  # 4 sl@163.com
    p5=re.search('[\w|-|_]+@[\w|.]+com',str)
    print(5,p5.group()) # 5 sl@163.com


def demo_ReHtml():
    str='<html><h>title zhks</h><body>hello world 2019!!!</body><html>'
    p1=re.compile('<h>[^<]+</h>')
    print(1,p1.findall(str))  # 1 ['<h>title zhks</h>']
    p2=re.compile('<h>([^>]+)</h>')
    print(2,p2.findall(str))  # 2 ['title zhks']
    p3=re.compile('<h>([^<]+)</h><body>([^<]+)</body>')
    print(3,p3.findall(str))  # 3 [('title zhks', 'hello world 2019!!!')]

def demo_ReTime():
    str='xksks-20-2019-08-12-xsleisosak;sdkxls'
    p1=re.compile('[\d]{4}-[\d]{2}-[\d]{2}')
    print(1,p1.findall(str))  # 1 ['2019-08-12']

def demo_ReMatch():
    str='china is a beatiful country!!! chskxkw, so i want to see all'
    p1=re.compile('[\w]+nt')
    print(1,p1.match(str)) # 1 None
    print(2,p1.search(str).group()) # 2 count
    print(3,p1.findall(str)) # 3 ['count', 'want']
    p2 = re.compile('ch[\w]+')
    print(4, p2.match(str).group()) # 4 china
    print(5, p2.search(str).group()) # 5 china
    print(6, p2.findall(str)) # 6 ['china', 'chskxkw']


if __name__ == '__main__':
    demo_ReMatch()

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值